Commit 859c7459 authored by Linus Torvalds's avatar Linus Torvalds

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

Pull ARM SoC fixes from Arnd Bergmann:
 "Most of the changes this time are for the Qualcomm Snapdragon
  platforms.

  There are bug fixes for error handling in Qualcomm icc-bwmon,
  rpmh-rsc, ramp_controller and rmtfs driver as well as the AMD tee
  firmware driver and a missing initialization in the Arm ff-a firmware
  driver. The Qualcomm RPMh and EDAC drivers need some rework to work
  correctly on all supported chips.

  The DT fixes include:

   - i.MX8 fixes for gpio, pinmux and clock settings

   - ADS touchscreen gpio polarity settings in several machines

   - Address dtb warnings for caches, panel and input-enable properties
     on Qualcomm platforms

   - Incorrect data on qualcomm platforms fir SA8155P power domains,
     SM8550 LLCC, SC7180-lite SDRAM frequencies and SM8550 soundwire

   - Remoteproc firmware paths are corrected for Sony Xperia 10 IV"

* tag 'arm-fixes-6.4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (36 commits)
  firmware: arm_ffa: Set handle field to zero in memory descriptor
  ARM: dts: Fix erroneous ADS touchscreen polarities
  arm64: dts: imx8mn-beacon: Fix SPI CS pinmux
  arm64: dts: imx8-ss-dma: assign default clock rate for lpuarts
  arm64: dts: imx8qm-mek: correct GPIOs for USDHC2 CD and WP signals
  EDAC/qcom: Get rid of hardcoded register offsets
  EDAC/qcom: Remove superfluous return variable assignment in qcom_llcc_core_setup()
  arm64: dts: qcom: sm8550: Use the correct LLCC register scheme
  dt-bindings: cache: qcom,llcc: Fix SM8550 description
  arm64: dts: qcom: sc7180-lite: Fix SDRAM freq for misidentified sc7180-lite boards
  arm64: dts: qcom: sm8550: use uint16 for Soundwire interval
  soc: qcom: rpmhpd: Add SA8155P power domains
  arm64: dts: qcom: Split out SA8155P and use correct RPMh power domains
  dt-bindings: power: qcom,rpmpd: Add SA8155P
  soc: qcom: Rename ice to qcom_ice to avoid module name conflict
  soc: qcom: rmtfs: Fix error code in probe()
  soc: qcom: ramp_controller: Fix an error handling path in qcom_ramp_controller_probe()
  ARM: dts: at91: sama7g5ek: fix debounce delay property for shdwc
  ARM: at91: pm: fix imbalanced reference counter for ethernet devices
  arm64: dts: qcom: sm6375-pdx225: Fix remoteproc firmware paths
  ...
parents 64569520 5cdd5ec1
...@@ -129,6 +129,7 @@ allOf: ...@@ -129,6 +129,7 @@ allOf:
- qcom,sm8250-llcc - qcom,sm8250-llcc
- qcom,sm8350-llcc - qcom,sm8350-llcc
- qcom,sm8450-llcc - qcom,sm8450-llcc
- qcom,sm8550-llcc
then: then:
properties: properties:
reg: reg:
......
...@@ -29,6 +29,7 @@ properties: ...@@ -29,6 +29,7 @@ properties:
- qcom,qcm2290-rpmpd - qcom,qcm2290-rpmpd
- qcom,qcs404-rpmpd - qcom,qcs404-rpmpd
- qcom,qdu1000-rpmhpd - qcom,qdu1000-rpmhpd
- qcom,sa8155p-rpmhpd
- qcom,sa8540p-rpmhpd - qcom,sa8540p-rpmhpd
- qcom,sa8775p-rpmhpd - qcom,sa8775p-rpmhpd
- qcom,sdm660-rpmpd - qcom,sdm660-rpmpd
......
...@@ -527,7 +527,7 @@ touchscreen@1 { ...@@ -527,7 +527,7 @@ touchscreen@1 {
interrupt-parent = <&gpio1>; interrupt-parent = <&gpio1>;
interrupts = <31 0>; interrupts = <31 0>;
pendown-gpio = <&gpio1 31 0>; pendown-gpio = <&gpio1 31 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>; ti,x-min = /bits/ 16 <0x0>;
......
...@@ -792,7 +792,7 @@ &sdmmc2 { ...@@ -792,7 +792,7 @@ &sdmmc2 {
}; };
&shdwc { &shdwc {
atmel,shdwc-debouncer = <976>; debounce-delay-us = <976>;
status = "okay"; status = "okay";
input@0 { input@0 {
......
...@@ -156,7 +156,7 @@ tsc2046@2 { ...@@ -156,7 +156,7 @@ tsc2046@2 {
compatible = "ti,ads7843"; compatible = "ti,ads7843";
interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>; interrupts-extended = <&pioC 2 IRQ_TYPE_EDGE_BOTH>;
spi-max-frequency = <3000000>; spi-max-frequency = <3000000>;
pendown-gpio = <&pioC 2 GPIO_ACTIVE_HIGH>; pendown-gpio = <&pioC 2 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <150>; ti,x-min = /bits/ 16 <150>;
ti,x-max = /bits/ 16 <3830>; ti,x-max = /bits/ 16 <3830>;
......
...@@ -64,7 +64,7 @@ ads7846@0 { ...@@ -64,7 +64,7 @@ ads7846@0 {
interrupt-parent = <&gpio2>; interrupt-parent = <&gpio2>;
interrupts = <7 0>; interrupts = <7 0>;
spi-max-frequency = <1000000>; spi-max-frequency = <1000000>;
pendown-gpio = <&gpio2 7 0>; pendown-gpio = <&gpio2 7 GPIO_ACTIVE_LOW>;
vcc-supply = <&reg_3p3v>; vcc-supply = <&reg_3p3v>;
ti,x-min = /bits/ 16 <0>; ti,x-min = /bits/ 16 <0>;
ti,x-max = /bits/ 16 <4095>; ti,x-max = /bits/ 16 <4095>;
......
...@@ -205,7 +205,7 @@ tsc2046@0 { ...@@ -205,7 +205,7 @@ tsc2046@0 {
pinctrl-0 = <&pinctrl_tsc2046_pendown>; pinctrl-0 = <&pinctrl_tsc2046_pendown>;
interrupt-parent = <&gpio2>; interrupt-parent = <&gpio2>;
interrupts = <29 0>; interrupts = <29 0>;
pendown-gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio2 29 GPIO_ACTIVE_LOW>;
touchscreen-max-pressure = <255>; touchscreen-max-pressure = <255>;
wakeup-source; wakeup-source;
}; };
......
...@@ -227,7 +227,7 @@ ads7846@0 { ...@@ -227,7 +227,7 @@ ads7846@0 {
interrupt-parent = <&gpio2>; interrupt-parent = <&gpio2>;
interrupts = <25 0>; /* gpio_57 */ interrupts = <25 0>; /* gpio_57 */
pendown-gpio = <&gpio2 25 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio2 25 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>; ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>; ti,x-max = /bits/ 16 <0x0fff>;
......
...@@ -54,7 +54,7 @@ ads7846@0 { ...@@ -54,7 +54,7 @@ ads7846@0 {
interrupt-parent = <&gpio1>; interrupt-parent = <&gpio1>;
interrupts = <27 0>; /* gpio_27 */ interrupts = <27 0>; /* gpio_27 */
pendown-gpio = <&gpio1 27 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio1 27 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>; ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>; ti,x-max = /bits/ 16 <0x0fff>;
......
...@@ -311,7 +311,7 @@ tsc2046@0 { ...@@ -311,7 +311,7 @@ tsc2046@0 {
interrupt-parent = <&gpio1>; interrupt-parent = <&gpio1>;
interrupts = <8 0>; /* boot6 / gpio_8 */ interrupts = <8 0>; /* boot6 / gpio_8 */
spi-max-frequency = <1000000>; spi-max-frequency = <1000000>;
pendown-gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio1 8 GPIO_ACTIVE_LOW>;
vcc-supply = <&reg_vcc3>; vcc-supply = <&reg_vcc3>;
pinctrl-names = "default"; pinctrl-names = "default";
pinctrl-0 = <&tsc2048_pins>; pinctrl-0 = <&tsc2048_pins>;
......
...@@ -149,7 +149,7 @@ ads7846@0 { ...@@ -149,7 +149,7 @@ ads7846@0 {
interrupt-parent = <&gpio4>; interrupt-parent = <&gpio4>;
interrupts = <18 0>; /* gpio_114 */ interrupts = <18 0>; /* gpio_114 */
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>; ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>; ti,x-max = /bits/ 16 <0x0fff>;
......
...@@ -160,7 +160,7 @@ ads7846@0 { ...@@ -160,7 +160,7 @@ ads7846@0 {
interrupt-parent = <&gpio4>; interrupt-parent = <&gpio4>;
interrupts = <18 0>; /* gpio_114 */ interrupts = <18 0>; /* gpio_114 */
pendown-gpio = <&gpio4 18 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio4 18 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>; ti,x-min = /bits/ 16 <0x0>;
ti,x-max = /bits/ 16 <0x0fff>; ti,x-max = /bits/ 16 <0x0fff>;
......
...@@ -651,7 +651,7 @@ tsc2046@0 { ...@@ -651,7 +651,7 @@ tsc2046@0 {
pinctrl-0 = <&penirq_pins>; pinctrl-0 = <&penirq_pins>;
interrupt-parent = <&gpio3>; interrupt-parent = <&gpio3>;
interrupts = <30 IRQ_TYPE_NONE>; /* GPIO_94 */ interrupts = <30 IRQ_TYPE_NONE>; /* GPIO_94 */
pendown-gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio3 30 GPIO_ACTIVE_LOW>;
vcc-supply = <&vaux4>; vcc-supply = <&vaux4>;
ti,x-min = /bits/ 16 <0>; ti,x-min = /bits/ 16 <0>;
......
...@@ -354,7 +354,7 @@ ads7846@0 { ...@@ -354,7 +354,7 @@ ads7846@0 {
interrupt-parent = <&gpio1>; interrupt-parent = <&gpio1>;
interrupts = <15 0>; /* gpio1_wk15 */ interrupts = <15 0>; /* gpio1_wk15 */
pendown-gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>; pendown-gpio = <&gpio1 15 GPIO_ACTIVE_LOW>;
ti,x-min = /bits/ 16 <0x0>; ti,x-min = /bits/ 16 <0x0>;
......
...@@ -268,7 +268,6 @@ bluetooth_default_state: bluetooth-default-state { ...@@ -268,7 +268,6 @@ bluetooth_default_state: bluetooth-default-state {
function = "gpio"; function = "gpio";
drive-strength = <8>; drive-strength = <8>;
bias-disable; bias-disable;
input-enable;
}; };
wlan_hostwake_default_state: wlan-hostwake-default-state { wlan_hostwake_default_state: wlan-hostwake-default-state {
...@@ -276,7 +275,6 @@ wlan_hostwake_default_state: wlan-hostwake-default-state { ...@@ -276,7 +275,6 @@ wlan_hostwake_default_state: wlan-hostwake-default-state {
function = "gpio"; function = "gpio";
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
wlan_regulator_default_state: wlan-regulator-default-state { wlan_regulator_default_state: wlan-regulator-default-state {
......
...@@ -352,7 +352,6 @@ wlan_hostwake_default_state: wlan-hostwake-default-state { ...@@ -352,7 +352,6 @@ wlan_hostwake_default_state: wlan-hostwake-default-state {
function = "gpio"; function = "gpio";
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
wlan_regulator_default_state: wlan-regulator-default-state { wlan_regulator_default_state: wlan-regulator-default-state {
......
...@@ -307,7 +307,6 @@ bluetooth_default_state: bluetooth-default-state { ...@@ -307,7 +307,6 @@ bluetooth_default_state: bluetooth-default-state {
function = "gpio"; function = "gpio";
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
touch_pins: touch-state { touch_pins: touch-state {
...@@ -317,7 +316,6 @@ irq-pins { ...@@ -317,7 +316,6 @@ irq-pins {
drive-strength = <8>; drive-strength = <8>;
bias-pull-down; bias-pull-down;
input-enable;
}; };
reset-pins { reset-pins {
...@@ -335,7 +333,6 @@ wlan_hostwake_default_state: wlan-hostwake-default-state { ...@@ -335,7 +333,6 @@ wlan_hostwake_default_state: wlan-hostwake-default-state {
function = "gpio"; function = "gpio";
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
wlan_regulator_default_state: wlan-regulator-default-state { wlan_regulator_default_state: wlan-regulator-default-state {
......
...@@ -83,6 +83,7 @@ CPU3: cpu@3 { ...@@ -83,6 +83,7 @@ CPU3: cpu@3 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
idle-states { idle-states {
......
...@@ -74,6 +74,7 @@ cpu@3 { ...@@ -74,6 +74,7 @@ cpu@3 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
qcom,saw = <&saw_l2>; qcom,saw = <&saw_l2>;
}; };
......
...@@ -102,6 +102,7 @@ cpu@3 { ...@@ -102,6 +102,7 @@ cpu@3 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
qcom,saw = <&saw_l2>; qcom,saw = <&saw_l2>;
}; };
}; };
......
...@@ -45,6 +45,7 @@ cpu1: cpu@1 { ...@@ -45,6 +45,7 @@ cpu1: cpu@1 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -49,7 +49,6 @@ gpioext1_pins: gpioext1-state { ...@@ -49,7 +49,6 @@ gpioext1_pins: gpioext1-state {
gpioext1-pins { gpioext1-pins {
pins = "gpio2"; pins = "gpio2";
function = "gpio"; function = "gpio";
input-enable;
bias-disable; bias-disable;
}; };
}; };
......
...@@ -36,6 +36,7 @@ cpu@1 { ...@@ -36,6 +36,7 @@ cpu@1 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -42,6 +42,7 @@ cpu@1 { ...@@ -42,6 +42,7 @@ cpu@1 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -592,7 +592,6 @@ mpu6515_pin: mpu6515-state { ...@@ -592,7 +592,6 @@ mpu6515_pin: mpu6515-state {
pins = "gpio73"; pins = "gpio73";
function = "gpio"; function = "gpio";
bias-disable; bias-disable;
input-enable;
}; };
touch_pin: touch-state { touch_pin: touch-state {
...@@ -602,7 +601,6 @@ int-pins { ...@@ -602,7 +601,6 @@ int-pins {
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
reset-pins { reset-pins {
......
...@@ -433,7 +433,6 @@ ts_int_pin: touch-int-state { ...@@ -433,7 +433,6 @@ ts_int_pin: touch-int-state {
function = "gpio"; function = "gpio";
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
sdc1_on: sdc1-on-state { sdc1_on: sdc1-on-state {
......
...@@ -80,6 +80,7 @@ CPU3: cpu@3 { ...@@ -80,6 +80,7 @@ CPU3: cpu@3 {
L2: l2-cache { L2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
qcom,saw = <&saw_l2>; qcom,saw = <&saw_l2>;
}; };
......
...@@ -461,7 +461,6 @@ int-pins { ...@@ -461,7 +461,6 @@ int-pins {
function = "gpio"; function = "gpio";
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
reset-pins { reset-pins {
......
...@@ -704,7 +704,6 @@ hostwake-pins { ...@@ -704,7 +704,6 @@ hostwake-pins {
pins = "gpio75"; pins = "gpio75";
function = "gpio"; function = "gpio";
drive-strength = <16>; drive-strength = <16>;
input-enable;
}; };
devwake-pins { devwake-pins {
...@@ -760,14 +759,12 @@ cmd-data-pins { ...@@ -760,14 +759,12 @@ cmd-data-pins {
i2c_touchkey_pins: i2c-touchkey-state { i2c_touchkey_pins: i2c-touchkey-state {
pins = "gpio95", "gpio96"; pins = "gpio95", "gpio96";
function = "gpio"; function = "gpio";
input-enable;
bias-pull-up; bias-pull-up;
}; };
i2c_led_gpioex_pins: i2c-led-gpioex-state { i2c_led_gpioex_pins: i2c-led-gpioex-state {
pins = "gpio120", "gpio121"; pins = "gpio120", "gpio121";
function = "gpio"; function = "gpio";
input-enable;
bias-pull-down; bias-pull-down;
}; };
...@@ -781,7 +778,6 @@ gpioex_pin: gpioex-state { ...@@ -781,7 +778,6 @@ gpioex_pin: gpioex-state {
wifi_pin: wifi-state { wifi_pin: wifi-state {
pins = "gpio92"; pins = "gpio92";
function = "gpio"; function = "gpio";
input-enable;
bias-pull-down; bias-pull-down;
}; };
......
...@@ -631,7 +631,6 @@ ts_int_pin: ts-int-pin-state { ...@@ -631,7 +631,6 @@ ts_int_pin: ts-int-pin-state {
function = "gpio"; function = "gpio";
drive-strength = <2>; drive-strength = <2>;
bias-disable; bias-disable;
input-enable;
}; };
bt_host_wake_pin: bt-host-wake-state { bt_host_wake_pin: bt-host-wake-state {
......
...@@ -334,16 +334,14 @@ static bool at91_pm_eth_quirk_is_valid(struct at91_pm_quirk_eth *eth) ...@@ -334,16 +334,14 @@ static bool at91_pm_eth_quirk_is_valid(struct at91_pm_quirk_eth *eth)
pdev = of_find_device_by_node(eth->np); pdev = of_find_device_by_node(eth->np);
if (!pdev) if (!pdev)
return false; return false;
/* put_device(eth->dev) is called at the end of suspend. */
eth->dev = &pdev->dev; eth->dev = &pdev->dev;
} }
/* No quirks if device isn't a wakeup source. */ /* No quirks if device isn't a wakeup source. */
if (!device_may_wakeup(eth->dev)) { if (!device_may_wakeup(eth->dev))
put_device(eth->dev);
return false; return false;
}
/* put_device(eth->dev) is called at the end of suspend. */
return true; return true;
} }
...@@ -439,14 +437,14 @@ static int at91_pm_config_quirks(bool suspend) ...@@ -439,14 +437,14 @@ static int at91_pm_config_quirks(bool suspend)
pr_err("AT91: PM: failed to enable %s clocks\n", pr_err("AT91: PM: failed to enable %s clocks\n",
j == AT91_PM_G_ETH ? "geth" : "eth"); j == AT91_PM_G_ETH ? "geth" : "eth");
} }
} else {
/*
* Release the reference to eth->dev taken in
* at91_pm_eth_quirk_is_valid().
*/
put_device(eth->dev);
eth->dev = NULL;
} }
/*
* Release the reference to eth->dev taken in
* at91_pm_eth_quirk_is_valid().
*/
put_device(eth->dev);
eth->dev = NULL;
} }
return ret; return ret;
......
...@@ -90,6 +90,8 @@ lpuart0: serial@5a060000 { ...@@ -90,6 +90,8 @@ lpuart0: serial@5a060000 {
clocks = <&uart0_lpcg IMX_LPCG_CLK_4>, clocks = <&uart0_lpcg IMX_LPCG_CLK_4>,
<&uart0_lpcg IMX_LPCG_CLK_0>; <&uart0_lpcg IMX_LPCG_CLK_0>;
clock-names = "ipg", "baud"; clock-names = "ipg", "baud";
assigned-clocks = <&clk IMX_SC_R_UART_0 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <80000000>;
power-domains = <&pd IMX_SC_R_UART_0>; power-domains = <&pd IMX_SC_R_UART_0>;
status = "disabled"; status = "disabled";
}; };
...@@ -100,6 +102,8 @@ lpuart1: serial@5a070000 { ...@@ -100,6 +102,8 @@ lpuart1: serial@5a070000 {
clocks = <&uart1_lpcg IMX_LPCG_CLK_4>, clocks = <&uart1_lpcg IMX_LPCG_CLK_4>,
<&uart1_lpcg IMX_LPCG_CLK_0>; <&uart1_lpcg IMX_LPCG_CLK_0>;
clock-names = "ipg", "baud"; clock-names = "ipg", "baud";
assigned-clocks = <&clk IMX_SC_R_UART_1 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <80000000>;
power-domains = <&pd IMX_SC_R_UART_1>; power-domains = <&pd IMX_SC_R_UART_1>;
status = "disabled"; status = "disabled";
}; };
...@@ -110,6 +114,8 @@ lpuart2: serial@5a080000 { ...@@ -110,6 +114,8 @@ lpuart2: serial@5a080000 {
clocks = <&uart2_lpcg IMX_LPCG_CLK_4>, clocks = <&uart2_lpcg IMX_LPCG_CLK_4>,
<&uart2_lpcg IMX_LPCG_CLK_0>; <&uart2_lpcg IMX_LPCG_CLK_0>;
clock-names = "ipg", "baud"; clock-names = "ipg", "baud";
assigned-clocks = <&clk IMX_SC_R_UART_2 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <80000000>;
power-domains = <&pd IMX_SC_R_UART_2>; power-domains = <&pd IMX_SC_R_UART_2>;
status = "disabled"; status = "disabled";
}; };
...@@ -120,6 +126,8 @@ lpuart3: serial@5a090000 { ...@@ -120,6 +126,8 @@ lpuart3: serial@5a090000 {
clocks = <&uart3_lpcg IMX_LPCG_CLK_4>, clocks = <&uart3_lpcg IMX_LPCG_CLK_4>,
<&uart3_lpcg IMX_LPCG_CLK_0>; <&uart3_lpcg IMX_LPCG_CLK_0>;
clock-names = "ipg", "baud"; clock-names = "ipg", "baud";
assigned-clocks = <&clk IMX_SC_R_UART_3 IMX_SC_PM_CLK_PER>;
assigned-clock-rates = <80000000>;
power-domains = <&pd IMX_SC_R_UART_3>; power-domains = <&pd IMX_SC_R_UART_3>;
status = "disabled"; status = "disabled";
}; };
......
...@@ -81,7 +81,7 @@ sound { ...@@ -81,7 +81,7 @@ sound {
&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 {
...@@ -202,7 +202,7 @@ pinctrl_espi2: espi2grp { ...@@ -202,7 +202,7 @@ pinctrl_espi2: espi2grp {
MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82 MX8MN_IOMUXC_ECSPI2_SCLK_ECSPI2_SCLK 0x82
MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82 MX8MN_IOMUXC_ECSPI2_MOSI_ECSPI2_MOSI 0x82
MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82 MX8MN_IOMUXC_ECSPI2_MISO_ECSPI2_MISO 0x82
MX8MN_IOMUXC_ECSPI1_SS0_GPIO5_IO9 0x41 MX8MN_IOMUXC_ECSPI2_SS0_GPIO5_IO13 0x41
>; >;
}; };
......
...@@ -82,8 +82,8 @@ &usdhc2 { ...@@ -82,8 +82,8 @@ &usdhc2 {
pinctrl-0 = <&pinctrl_usdhc2>; pinctrl-0 = <&pinctrl_usdhc2>;
bus-width = <4>; bus-width = <4>;
vmmc-supply = <&reg_usdhc2_vmmc>; vmmc-supply = <&reg_usdhc2_vmmc>;
cd-gpios = <&lsio_gpio4 22 GPIO_ACTIVE_LOW>; cd-gpios = <&lsio_gpio5 22 GPIO_ACTIVE_LOW>;
wp-gpios = <&lsio_gpio4 21 GPIO_ACTIVE_HIGH>; wp-gpios = <&lsio_gpio5 21 GPIO_ACTIVE_HIGH>;
status = "okay"; status = "okay";
}; };
......
...@@ -73,6 +73,7 @@ CPU3: cpu@3 { ...@@ -73,6 +73,7 @@ CPU3: cpu@3 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -83,7 +83,8 @@ CPU3: cpu@3 { ...@@ -83,7 +83,8 @@ CPU3: cpu@3 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <0x2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -66,7 +66,8 @@ CPU3: cpu@3 { ...@@ -66,7 +66,8 @@ CPU3: cpu@3 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <0x2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -72,6 +72,7 @@ CPU3: cpu@3 { ...@@ -72,6 +72,7 @@ CPU3: cpu@3 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -180,6 +180,7 @@ CPU3: cpu@3 { ...@@ -180,6 +180,7 @@ CPU3: cpu@3 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
idle-states { idle-states {
......
...@@ -153,11 +153,13 @@ core3 { ...@@ -153,11 +153,13 @@ core3 {
L2_0: l2-cache-0 { L2_0: l2-cache-0 {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
L2_1: l2-cache-1 { L2_1: l2-cache-1 {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -193,11 +193,13 @@ big_cpu_sleep_1: cpu-sleep-1-1 { ...@@ -193,11 +193,13 @@ big_cpu_sleep_1: cpu-sleep-1-1 {
l2_0: l2-cache0 { l2_0: l2-cache0 {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
l2_1: l2-cache1 { l2_1: l2-cache1 {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -52,6 +52,7 @@ CPU0: cpu@0 { ...@@ -52,6 +52,7 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
...@@ -88,6 +89,7 @@ CPU4: cpu@100 { ...@@ -88,6 +89,7 @@ CPU4: cpu@100 {
L2_1: l2-cache { L2_1: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -53,8 +53,9 @@ CPU0: cpu@0 { ...@@ -53,8 +53,9 @@ CPU0: cpu@0 {
#cooling-cells = <2>; #cooling-cells = <2>;
next-level-cache = <&L2_0>; next-level-cache = <&L2_0>;
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
...@@ -83,8 +84,9 @@ CPU2: cpu@100 { ...@@ -83,8 +84,9 @@ CPU2: cpu@100 {
#cooling-cells = <2>; #cooling-cells = <2>;
next-level-cache = <&L2_1>; next-level-cache = <&L2_1>;
L2_1: l2-cache { L2_1: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -146,6 +146,7 @@ CPU0: cpu@0 { ...@@ -146,6 +146,7 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
...@@ -190,6 +191,7 @@ CPU4: cpu@100 { ...@@ -190,6 +191,7 @@ CPU4: cpu@100 {
L2_1: l2-cache { L2_1: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -51,6 +51,7 @@ CPU0: cpu@0 { ...@@ -51,6 +51,7 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -95,6 +95,7 @@ CPU3: cpu@103 { ...@@ -95,6 +95,7 @@ CPU3: cpu@103 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
idle-states { idle-states {
......
...@@ -35,9 +35,13 @@ CPU0: cpu@0 { ...@@ -35,9 +35,13 @@ CPU0: cpu@0 {
next-level-cache = <&L2_0>; next-level-cache = <&L2_0>;
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -54,6 +58,8 @@ CPU1: cpu@100 { ...@@ -54,6 +58,8 @@ CPU1: cpu@100 {
next-level-cache = <&L2_100>; next-level-cache = <&L2_100>;
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -70,6 +76,8 @@ CPU2: cpu@200 { ...@@ -70,6 +76,8 @@ CPU2: cpu@200 {
next-level-cache = <&L2_200>; next-level-cache = <&L2_200>;
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -86,6 +94,8 @@ CPU3: cpu@300 { ...@@ -86,6 +94,8 @@ CPU3: cpu@300 {
next-level-cache = <&L2_300>; next-level-cache = <&L2_300>;
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#include <dt-bindings/regulator/qcom,rpmh-regulator.h> #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
#include <dt-bindings/gpio/gpio.h> #include <dt-bindings/gpio/gpio.h>
#include "sm8150.dtsi" #include "sa8155p.dtsi"
#include "pmm8155au_1.dtsi" #include "pmm8155au_1.dtsi"
#include "pmm8155au_2.dtsi" #include "pmm8155au_2.dtsi"
......
// SPDX-License-Identifier: BSD-3-Clause
/*
* Copyright (c) 2023, Linaro Limited
*
* SA8155P is an automotive variant of SM8150, with some minor changes.
* Most notably, the RPMhPD setup differs: MMCX and LCX/LMX rails are gone,
* though the cmd-db doesn't reflect that and access attemps result in a bite.
*/
#include "sm8150.dtsi"
&dispcc {
power-domains = <&rpmhpd SA8155P_CX>;
};
&mdss_dsi0 {
power-domains = <&rpmhpd SA8155P_CX>;
};
&mdss_dsi1 {
power-domains = <&rpmhpd SA8155P_CX>;
};
&mdss_mdp {
power-domains = <&rpmhpd SA8155P_CX>;
};
&remoteproc_slpi {
power-domains = <&rpmhpd SA8155P_CX>,
<&rpmhpd SA8155P_MX>;
};
&rpmhpd {
/*
* The bindings were crafted such that SA8155P PDs match their
* SM8150 counterparts to make it more maintainable and only
* necessitate adjusting entries that actually differ
*/
compatible = "qcom,sa8155p-rpmhpd";
};
...@@ -42,9 +42,13 @@ CPU0: cpu@0 { ...@@ -42,9 +42,13 @@ CPU0: cpu@0 {
next-level-cache = <&L2_0>; next-level-cache = <&L2_0>;
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -58,6 +62,8 @@ CPU1: cpu@100 { ...@@ -58,6 +62,8 @@ CPU1: cpu@100 {
next-level-cache = <&L2_1>; next-level-cache = <&L2_1>;
L2_1: l2-cache { L2_1: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -71,6 +77,8 @@ CPU2: cpu@200 { ...@@ -71,6 +77,8 @@ CPU2: cpu@200 {
next-level-cache = <&L2_2>; next-level-cache = <&L2_2>;
L2_2: l2-cache { L2_2: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -84,6 +92,8 @@ CPU3: cpu@300 { ...@@ -84,6 +92,8 @@ CPU3: cpu@300 {
next-level-cache = <&L2_3>; next-level-cache = <&L2_3>;
L2_3: l2-cache { L2_3: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -97,9 +107,13 @@ CPU4: cpu@10000 { ...@@ -97,9 +107,13 @@ CPU4: cpu@10000 {
next-level-cache = <&L2_4>; next-level-cache = <&L2_4>;
L2_4: l2-cache { L2_4: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_1>; next-level-cache = <&L3_1>;
L3_1: l3-cache { L3_1: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>;
cache-unified;
}; };
}; };
...@@ -114,6 +128,8 @@ CPU5: cpu@10100 { ...@@ -114,6 +128,8 @@ CPU5: cpu@10100 {
next-level-cache = <&L2_5>; next-level-cache = <&L2_5>;
L2_5: l2-cache { L2_5: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_1>; next-level-cache = <&L3_1>;
}; };
}; };
...@@ -127,6 +143,8 @@ CPU6: cpu@10200 { ...@@ -127,6 +143,8 @@ CPU6: cpu@10200 {
next-level-cache = <&L2_6>; next-level-cache = <&L2_6>;
L2_6: l2-cache { L2_6: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_1>; next-level-cache = <&L3_1>;
}; };
}; };
...@@ -140,6 +158,8 @@ CPU7: cpu@10300 { ...@@ -140,6 +158,8 @@ CPU7: cpu@10300 {
next-level-cache = <&L2_7>; next-level-cache = <&L2_7>;
L2_7: l2-cache { L2_7: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_1>; next-level-cache = <&L3_1>;
}; };
}; };
......
...@@ -16,3 +16,11 @@ &cpu6_opp11 { ...@@ -16,3 +16,11 @@ &cpu6_opp11 {
&cpu6_opp12 { &cpu6_opp12 {
opp-peak-kBps = <8532000 23347200>; opp-peak-kBps = <8532000 23347200>;
}; };
&cpu6_opp13 {
opp-peak-kBps = <8532000 23347200>;
};
&cpu6_opp14 {
opp-peak-kBps = <8532000 23347200>;
};
...@@ -92,10 +92,12 @@ &LITTLE_CPU_SLEEP_1 ...@@ -92,10 +92,12 @@ &LITTLE_CPU_SLEEP_1
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -120,6 +122,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -120,6 +122,7 @@ &LITTLE_CPU_SLEEP_1
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -144,6 +147,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -144,6 +147,7 @@ &LITTLE_CPU_SLEEP_1
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -168,6 +172,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -168,6 +172,7 @@ &LITTLE_CPU_SLEEP_1
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -192,6 +197,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -192,6 +197,7 @@ &LITTLE_CPU_SLEEP_1
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -216,6 +222,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -216,6 +222,7 @@ &LITTLE_CPU_SLEEP_1
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -240,6 +247,7 @@ &BIG_CPU_SLEEP_1 ...@@ -240,6 +247,7 @@ &BIG_CPU_SLEEP_1
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -264,6 +272,7 @@ &BIG_CPU_SLEEP_1 ...@@ -264,6 +272,7 @@ &BIG_CPU_SLEEP_1
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -480,7 +480,6 @@ &swr0 { ...@@ -480,7 +480,6 @@ &swr0 {
wcd_rx: codec@0,4 { wcd_rx: codec@0,4 {
compatible = "sdw20217010d00"; compatible = "sdw20217010d00";
reg = <0 4>; reg = <0 4>;
#sound-dai-cells = <1>;
qcom,rx-port-mapping = <1 2 3 4 5>; qcom,rx-port-mapping = <1 2 3 4 5>;
}; };
}; };
...@@ -491,7 +490,6 @@ &swr1 { ...@@ -491,7 +490,6 @@ &swr1 {
wcd_tx: codec@0,3 { wcd_tx: codec@0,3 {
compatible = "sdw20217010d00"; compatible = "sdw20217010d00";
reg = <0 3>; reg = <0 3>;
#sound-dai-cells = <1>;
qcom,tx-port-mapping = <1 2 3 4>; qcom,tx-port-mapping = <1 2 3 4>;
}; };
}; };
......
...@@ -414,7 +414,6 @@ &swr0 { ...@@ -414,7 +414,6 @@ &swr0 {
wcd_rx: codec@0,4 { wcd_rx: codec@0,4 {
compatible = "sdw20217010d00"; compatible = "sdw20217010d00";
reg = <0 4>; reg = <0 4>;
#sound-dai-cells = <1>;
qcom,rx-port-mapping = <1 2 3 4 5>; qcom,rx-port-mapping = <1 2 3 4 5>;
}; };
}; };
...@@ -423,7 +422,6 @@ &swr1 { ...@@ -423,7 +422,6 @@ &swr1 {
wcd_tx: codec@0,3 { wcd_tx: codec@0,3 {
compatible = "sdw20217010d00"; compatible = "sdw20217010d00";
reg = <0 3>; reg = <0 3>;
#sound-dai-cells = <1>;
qcom,tx-port-mapping = <1 2 3 4>; qcom,tx-port-mapping = <1 2 3 4>;
}; };
}; };
......
...@@ -182,10 +182,12 @@ &LITTLE_CPU_SLEEP_1 ...@@ -182,10 +182,12 @@ &LITTLE_CPU_SLEEP_1
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -208,6 +210,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -208,6 +210,7 @@ &LITTLE_CPU_SLEEP_1
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -230,6 +233,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -230,6 +233,7 @@ &LITTLE_CPU_SLEEP_1
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -252,6 +256,7 @@ &LITTLE_CPU_SLEEP_1 ...@@ -252,6 +256,7 @@ &LITTLE_CPU_SLEEP_1
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -274,6 +279,7 @@ &BIG_CPU_SLEEP_1 ...@@ -274,6 +279,7 @@ &BIG_CPU_SLEEP_1
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -296,6 +302,7 @@ &BIG_CPU_SLEEP_1 ...@@ -296,6 +302,7 @@ &BIG_CPU_SLEEP_1
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -318,6 +325,7 @@ &BIG_CPU_SLEEP_1 ...@@ -318,6 +325,7 @@ &BIG_CPU_SLEEP_1
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -340,6 +348,7 @@ &BIG_CPU_SLEEP_1 ...@@ -340,6 +348,7 @@ &BIG_CPU_SLEEP_1
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -58,10 +58,12 @@ CPU0: cpu@0 { ...@@ -58,10 +58,12 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -83,6 +85,7 @@ CPU1: cpu@100 { ...@@ -83,6 +85,7 @@ CPU1: cpu@100 {
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -104,6 +107,7 @@ CPU2: cpu@200 { ...@@ -104,6 +107,7 @@ CPU2: cpu@200 {
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -125,6 +129,7 @@ CPU3: cpu@300 { ...@@ -125,6 +129,7 @@ CPU3: cpu@300 {
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -146,6 +151,7 @@ CPU4: cpu@400 { ...@@ -146,6 +151,7 @@ CPU4: cpu@400 {
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -167,6 +173,7 @@ CPU5: cpu@500 { ...@@ -167,6 +173,7 @@ CPU5: cpu@500 {
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -188,6 +195,7 @@ CPU6: cpu@600 { ...@@ -188,6 +195,7 @@ CPU6: cpu@600 {
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -209,6 +217,7 @@ CPU7: cpu@700 { ...@@ -209,6 +217,7 @@ CPU7: cpu@700 {
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -2726,6 +2735,7 @@ data-pins { ...@@ -2726,6 +2735,7 @@ data-pins {
pins = "gpio7"; pins = "gpio7";
function = "dmic1_data"; function = "dmic1_data";
drive-strength = <8>; drive-strength = <8>;
input-enable;
}; };
}; };
...@@ -2743,6 +2753,7 @@ data-pins { ...@@ -2743,6 +2753,7 @@ data-pins {
function = "dmic1_data"; function = "dmic1_data";
drive-strength = <2>; drive-strength = <2>;
bias-pull-down; bias-pull-down;
input-enable;
}; };
}; };
...@@ -2758,6 +2769,7 @@ data-pins { ...@@ -2758,6 +2769,7 @@ data-pins {
pins = "gpio9"; pins = "gpio9";
function = "dmic2_data"; function = "dmic2_data";
drive-strength = <8>; drive-strength = <8>;
input-enable;
}; };
}; };
...@@ -2775,6 +2787,7 @@ data-pins { ...@@ -2775,6 +2787,7 @@ data-pins {
function = "dmic2_data"; function = "dmic2_data";
drive-strength = <2>; drive-strength = <2>;
bias-pull-down; bias-pull-down;
input-enable;
}; };
}; };
...@@ -3982,6 +3995,7 @@ apps_rsc: rsc@18200000 { ...@@ -3982,6 +3995,7 @@ apps_rsc: rsc@18200000 {
qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>, qcom,tcs-config = <ACTIVE_TCS 2>, <SLEEP_TCS 3>,
<WAKE_TCS 3>, <CONTROL_TCS 1>; <WAKE_TCS 3>, <CONTROL_TCS 1>;
label = "apps_rsc"; label = "apps_rsc";
power-domains = <&CLUSTER_PD>;
apps_bcm_voter: bcm-voter { apps_bcm_voter: bcm-voter {
compatible = "qcom,bcm-voter"; compatible = "qcom,bcm-voter";
......
...@@ -63,6 +63,7 @@ &PERF_CLUSTER_SLEEP_1 ...@@ -63,6 +63,7 @@ &PERF_CLUSTER_SLEEP_1
L2_1: l2-cache { L2_1: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
...@@ -127,6 +128,7 @@ &PWR_CLUSTER_SLEEP_1 ...@@ -127,6 +128,7 @@ &PWR_CLUSTER_SLEEP_1
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -41,8 +41,12 @@ CPU0: cpu@0 { ...@@ -41,8 +41,12 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
cache-level = <2>;
cache-unified;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -57,6 +61,8 @@ CPU1: cpu@100 { ...@@ -57,6 +61,8 @@ CPU1: cpu@100 {
next-level-cache = <&L2_100>; next-level-cache = <&L2_100>;
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -71,6 +77,8 @@ CPU2: cpu@200 { ...@@ -71,6 +77,8 @@ CPU2: cpu@200 {
next-level-cache = <&L2_200>; next-level-cache = <&L2_200>;
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -85,6 +93,8 @@ CPU3: cpu@300 { ...@@ -85,6 +93,8 @@ CPU3: cpu@300 {
next-level-cache = <&L2_300>; next-level-cache = <&L2_300>;
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -99,6 +109,8 @@ CPU4: cpu@400 { ...@@ -99,6 +109,8 @@ CPU4: cpu@400 {
next-level-cache = <&L2_400>; next-level-cache = <&L2_400>;
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -113,6 +125,8 @@ CPU5: cpu@500 { ...@@ -113,6 +125,8 @@ CPU5: cpu@500 {
next-level-cache = <&L2_500>; next-level-cache = <&L2_500>;
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -127,6 +141,8 @@ CPU6: cpu@600 { ...@@ -127,6 +141,8 @@ CPU6: cpu@600 {
next-level-cache = <&L2_600>; next-level-cache = <&L2_600>;
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -141,6 +157,8 @@ CPU7: cpu@700 { ...@@ -141,6 +157,8 @@ CPU7: cpu@700 {
next-level-cache = <&L2_700>; next-level-cache = <&L2_700>;
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -108,10 +108,12 @@ CPU0: cpu@0 { ...@@ -108,10 +108,12 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -135,6 +137,7 @@ CPU1: cpu@100 { ...@@ -135,6 +137,7 @@ CPU1: cpu@100 {
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -158,6 +161,7 @@ CPU2: cpu@200 { ...@@ -158,6 +161,7 @@ CPU2: cpu@200 {
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -181,6 +185,7 @@ CPU3: cpu@300 { ...@@ -181,6 +185,7 @@ CPU3: cpu@300 {
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -204,6 +209,7 @@ CPU4: cpu@400 { ...@@ -204,6 +209,7 @@ CPU4: cpu@400 {
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -227,6 +233,7 @@ CPU5: cpu@500 { ...@@ -227,6 +233,7 @@ CPU5: cpu@500 {
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -250,6 +257,7 @@ CPU6: cpu@600 { ...@@ -250,6 +257,7 @@ CPU6: cpu@600 {
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -273,6 +281,7 @@ CPU7: cpu@700 { ...@@ -273,6 +281,7 @@ CPU7: cpu@700 {
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -50,6 +50,7 @@ CPU0: cpu@0 { ...@@ -50,6 +50,7 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
...@@ -102,6 +103,7 @@ CPU4: cpu@100 { ...@@ -102,6 +103,7 @@ CPU4: cpu@100 {
L2_1: l2-cache { L2_1: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -47,6 +47,7 @@ CPU0: cpu@0 { ...@@ -47,6 +47,7 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
...@@ -87,6 +88,7 @@ CPU4: cpu@100 { ...@@ -87,6 +88,7 @@ CPU4: cpu@100 {
L2_1: l2-cache { L2_1: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
}; };
}; };
......
...@@ -60,10 +60,12 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -60,10 +60,12 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -86,6 +88,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -86,6 +88,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -108,6 +111,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -108,6 +111,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -130,6 +134,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -130,6 +134,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -152,6 +157,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -152,6 +157,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -174,6 +180,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -174,6 +180,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -196,6 +203,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -196,6 +203,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -218,6 +226,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>, ...@@ -218,6 +226,7 @@ &clk_virt SLAVE_EBI_CH0 QCOM_ICC_TAG_ACTIVE_ONLY>,
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -178,12 +178,12 @@ &qupv3_id_1 { ...@@ -178,12 +178,12 @@ &qupv3_id_1 {
}; };
&remoteproc_adsp { &remoteproc_adsp {
firmware-name = "qcom/Sony/murray/adsp.mbn"; firmware-name = "qcom/sm6375/Sony/murray/adsp.mbn";
status = "okay"; status = "okay";
}; };
&remoteproc_cdsp { &remoteproc_cdsp {
firmware-name = "qcom/Sony/murray/cdsp.mbn"; firmware-name = "qcom/sm6375/Sony/murray/cdsp.mbn";
status = "okay"; status = "okay";
}; };
......
...@@ -48,10 +48,14 @@ CPU0: cpu@0 { ...@@ -48,10 +48,14 @@ CPU0: cpu@0 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -68,8 +72,10 @@ CPU1: cpu@100 { ...@@ -68,8 +72,10 @@ CPU1: cpu@100 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -85,8 +91,10 @@ CPU2: cpu@200 { ...@@ -85,8 +91,10 @@ CPU2: cpu@200 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -102,8 +110,10 @@ CPU3: cpu@300 { ...@@ -102,8 +110,10 @@ CPU3: cpu@300 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -119,8 +129,10 @@ CPU4: cpu@400 { ...@@ -119,8 +129,10 @@ CPU4: cpu@400 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -136,8 +148,10 @@ CPU5: cpu@500 { ...@@ -136,8 +148,10 @@ CPU5: cpu@500 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -153,8 +167,10 @@ CPU6: cpu@600 { ...@@ -153,8 +167,10 @@ CPU6: cpu@600 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -170,8 +186,10 @@ CPU7: cpu@700 { ...@@ -170,8 +186,10 @@ CPU7: cpu@700 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
next-level-cache = <&L3_0>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -63,10 +63,12 @@ CPU0: cpu@0 { ...@@ -63,10 +63,12 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -90,6 +92,7 @@ CPU1: cpu@100 { ...@@ -90,6 +92,7 @@ CPU1: cpu@100 {
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -113,6 +116,7 @@ CPU2: cpu@200 { ...@@ -113,6 +116,7 @@ CPU2: cpu@200 {
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -136,6 +140,7 @@ CPU3: cpu@300 { ...@@ -136,6 +140,7 @@ CPU3: cpu@300 {
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -159,6 +164,7 @@ CPU4: cpu@400 { ...@@ -159,6 +164,7 @@ CPU4: cpu@400 {
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -182,6 +188,7 @@ CPU5: cpu@500 { ...@@ -182,6 +188,7 @@ CPU5: cpu@500 {
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -205,6 +212,7 @@ CPU6: cpu@600 { ...@@ -205,6 +212,7 @@ CPU6: cpu@600 {
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -228,6 +236,7 @@ CPU7: cpu@700 { ...@@ -228,6 +236,7 @@ CPU7: cpu@700 {
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -13,6 +13,6 @@ / { ...@@ -13,6 +13,6 @@ / {
}; };
&display_panel { &display_panel {
compatible = "xiaomi,elish-boe-nt36523"; compatible = "xiaomi,elish-boe-nt36523", "novatek,nt36523";
status = "okay"; status = "okay";
}; };
...@@ -13,6 +13,6 @@ / { ...@@ -13,6 +13,6 @@ / {
}; };
&display_panel { &display_panel {
compatible = "xiaomi,elish-csot-nt36523"; compatible = "xiaomi,elish-csot-nt36523", "novatek,nt36523";
status = "okay"; status = "okay";
}; };
...@@ -58,12 +58,14 @@ CPU0: cpu@0 { ...@@ -58,12 +58,14 @@ CPU0: cpu@0 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -80,9 +82,10 @@ CPU1: cpu@100 { ...@@ -80,9 +82,10 @@ CPU1: cpu@100 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -98,9 +101,10 @@ CPU2: cpu@200 { ...@@ -98,9 +101,10 @@ CPU2: cpu@200 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -116,9 +120,10 @@ CPU3: cpu@300 { ...@@ -116,9 +120,10 @@ CPU3: cpu@300 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -134,9 +139,10 @@ CPU4: cpu@400 { ...@@ -134,9 +139,10 @@ CPU4: cpu@400 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -152,9 +158,10 @@ CPU5: cpu@500 { ...@@ -152,9 +158,10 @@ CPU5: cpu@500 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -170,9 +177,10 @@ CPU6: cpu@600 { ...@@ -170,9 +177,10 @@ CPU6: cpu@600 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -188,9 +196,10 @@ CPU7: cpu@700 { ...@@ -188,9 +196,10 @@ CPU7: cpu@700 {
power-domain-names = "psci"; power-domain-names = "psci";
#cooling-cells = <2>; #cooling-cells = <2>;
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -57,12 +57,14 @@ CPU0: cpu@0 { ...@@ -57,12 +57,14 @@ CPU0: cpu@0 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 0>; clocks = <&cpufreq_hw 0>;
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -79,9 +81,10 @@ CPU1: cpu@100 { ...@@ -79,9 +81,10 @@ CPU1: cpu@100 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 0>; clocks = <&cpufreq_hw 0>;
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -97,9 +100,10 @@ CPU2: cpu@200 { ...@@ -97,9 +100,10 @@ CPU2: cpu@200 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 0>; clocks = <&cpufreq_hw 0>;
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -115,9 +119,10 @@ CPU3: cpu@300 { ...@@ -115,9 +119,10 @@ CPU3: cpu@300 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 0>; clocks = <&cpufreq_hw 0>;
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -133,9 +138,10 @@ CPU4: cpu@400 { ...@@ -133,9 +138,10 @@ CPU4: cpu@400 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 1>; clocks = <&cpufreq_hw 1>;
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -151,9 +157,10 @@ CPU5: cpu@500 { ...@@ -151,9 +157,10 @@ CPU5: cpu@500 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 1>; clocks = <&cpufreq_hw 1>;
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -169,9 +176,10 @@ CPU6: cpu@600 { ...@@ -169,9 +176,10 @@ CPU6: cpu@600 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 1>; clocks = <&cpufreq_hw 1>;
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
...@@ -187,9 +195,10 @@ CPU7: cpu@700 { ...@@ -187,9 +195,10 @@ CPU7: cpu@700 {
#cooling-cells = <2>; #cooling-cells = <2>;
clocks = <&cpufreq_hw 2>; clocks = <&cpufreq_hw 2>;
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
next-level-cache = <&L3_0>; cache-unified;
next-level-cache = <&L3_0>;
}; };
}; };
......
...@@ -80,10 +80,12 @@ CPU0: cpu@0 { ...@@ -80,10 +80,12 @@ CPU0: cpu@0 {
L2_0: l2-cache { L2_0: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
L3_0: l3-cache { L3_0: l3-cache {
compatible = "cache"; compatible = "cache";
cache-level = <3>; cache-level = <3>;
cache-unified;
}; };
}; };
}; };
...@@ -104,6 +106,7 @@ CPU1: cpu@100 { ...@@ -104,6 +106,7 @@ CPU1: cpu@100 {
L2_100: l2-cache { L2_100: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -124,6 +127,7 @@ CPU2: cpu@200 { ...@@ -124,6 +127,7 @@ CPU2: cpu@200 {
L2_200: l2-cache { L2_200: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -144,6 +148,7 @@ CPU3: cpu@300 { ...@@ -144,6 +148,7 @@ CPU3: cpu@300 {
L2_300: l2-cache { L2_300: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -164,6 +169,7 @@ CPU4: cpu@400 { ...@@ -164,6 +169,7 @@ CPU4: cpu@400 {
L2_400: l2-cache { L2_400: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -184,6 +190,7 @@ CPU5: cpu@500 { ...@@ -184,6 +190,7 @@ CPU5: cpu@500 {
L2_500: l2-cache { L2_500: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -204,6 +211,7 @@ CPU6: cpu@600 { ...@@ -204,6 +211,7 @@ CPU6: cpu@600 {
L2_600: l2-cache { L2_600: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -224,6 +232,7 @@ CPU7: cpu@700 { ...@@ -224,6 +232,7 @@ CPU7: cpu@700 {
L2_700: l2-cache { L2_700: l2-cache {
compatible = "cache"; compatible = "cache";
cache-level = <2>; cache-level = <2>;
cache-unified;
next-level-cache = <&L3_0>; next-level-cache = <&L3_0>;
}; };
}; };
...@@ -2022,7 +2031,7 @@ swr3: soundwire-controller@6ab0000 { ...@@ -2022,7 +2031,7 @@ swr3: soundwire-controller@6ab0000 {
qcom,din-ports = <4>; qcom,din-ports = <4>;
qcom,dout-ports = <9>; qcom,dout-ports = <9>;
qcom,ports-sinterval = <0x07 0x1f 0x3f 0x07 0x1f 0x3f 0x18f 0xff 0xff 0x0f 0x0f 0xff 0x31f>; qcom,ports-sinterval = /bits/ 16 <0x07 0x1f 0x3f 0x07 0x1f 0x3f 0x18f 0xff 0xff 0x0f 0x0f 0xff 0x31f>;
qcom,ports-offset1 = /bits/ 8 <0x01 0x03 0x05 0x02 0x04 0x15 0x00 0xff 0xff 0x06 0x0d 0xff 0x00>; qcom,ports-offset1 = /bits/ 8 <0x01 0x03 0x05 0x02 0x04 0x15 0x00 0xff 0xff 0x06 0x0d 0xff 0x00>;
qcom,ports-offset2 = /bits/ 8 <0xff 0x07 0x1f 0xff 0x07 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff>; qcom,ports-offset2 = /bits/ 8 <0xff 0x07 0x1f 0xff 0x07 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
qcom,ports-hstart = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>; qcom,ports-hstart = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>;
...@@ -2068,7 +2077,7 @@ swr1: soundwire-controller@6ad0000 { ...@@ -2068,7 +2077,7 @@ swr1: soundwire-controller@6ad0000 {
qcom,din-ports = <0>; qcom,din-ports = <0>;
qcom,dout-ports = <10>; qcom,dout-ports = <10>;
qcom,ports-sinterval = <0x03 0x3f 0x1f 0x07 0x00 0x18f 0xff 0xff 0xff 0xff>; qcom,ports-sinterval = /bits/ 16 <0x03 0x3f 0x1f 0x07 0x00 0x18f 0xff 0xff 0xff 0xff>;
qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x00 0x00 0xff 0xff 0xff 0xff>; qcom,ports-offset1 = /bits/ 8 <0x00 0x00 0x0b 0x01 0x00 0x00 0xff 0xff 0xff 0xff>;
qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00 0x00 0xff 0xff 0xff 0xff>; qcom,ports-offset2 = /bits/ 8 <0x00 0x00 0x0b 0x00 0x00 0x00 0xff 0xff 0xff 0xff>;
qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff>; qcom,ports-hstart = /bits/ 8 <0xff 0x03 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff>;
...@@ -2133,7 +2142,7 @@ swr0: soundwire-controller@6b10000 { ...@@ -2133,7 +2142,7 @@ swr0: soundwire-controller@6b10000 {
qcom,din-ports = <4>; qcom,din-ports = <4>;
qcom,dout-ports = <9>; qcom,dout-ports = <9>;
qcom,ports-sinterval = <0x07 0x1f 0x3f 0x07 0x1f 0x3f 0x18f 0xff 0xff 0x0f 0x0f 0xff 0x31f>; qcom,ports-sinterval = /bits/ 16 <0x07 0x1f 0x3f 0x07 0x1f 0x3f 0x18f 0xff 0xff 0x0f 0x0f 0xff 0x31f>;
qcom,ports-offset1 = /bits/ 8 <0x01 0x03 0x05 0x02 0x04 0x15 0x00 0xff 0xff 0x06 0x0d 0xff 0x00>; qcom,ports-offset1 = /bits/ 8 <0x01 0x03 0x05 0x02 0x04 0x15 0x00 0xff 0xff 0x06 0x0d 0xff 0x00>;
qcom,ports-offset2 = /bits/ 8 <0xff 0x07 0x1f 0xff 0x07 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff>; qcom,ports-offset2 = /bits/ 8 <0xff 0x07 0x1f 0xff 0x07 0x1f 0xff 0xff 0xff 0xff 0xff 0xff 0xff>;
qcom,ports-hstart = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>; qcom,ports-hstart = /bits/ 8 <0xff 0xff 0xff 0xff 0xff 0xff 0x08 0xff 0xff 0xff 0xff 0xff 0x0f>;
...@@ -3762,9 +3771,16 @@ gem_noc: interconnect@24100000 { ...@@ -3762,9 +3771,16 @@ gem_noc: interconnect@24100000 {
system-cache-controller@25000000 { system-cache-controller@25000000 {
compatible = "qcom,sm8550-llcc"; compatible = "qcom,sm8550-llcc";
reg = <0 0x25000000 0 0x800000>, reg = <0 0x25000000 0 0x200000>,
<0 0x25200000 0 0x200000>,
<0 0x25400000 0 0x200000>,
<0 0x25600000 0 0x200000>,
<0 0x25800000 0 0x200000>; <0 0x25800000 0 0x200000>;
reg-names = "llcc_base", "llcc_broadcast_base"; reg-names = "llcc0_base",
"llcc1_base",
"llcc2_base",
"llcc3_base",
"llcc_broadcast_base";
interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 266 IRQ_TYPE_LEVEL_HIGH>;
}; };
......
...@@ -21,30 +21,9 @@ ...@@ -21,30 +21,9 @@
#define TRP_SYN_REG_CNT 6 #define TRP_SYN_REG_CNT 6
#define DRP_SYN_REG_CNT 8 #define DRP_SYN_REG_CNT 8
#define LLCC_COMMON_STATUS0 0x0003000c
#define LLCC_LB_CNT_MASK GENMASK(31, 28) #define LLCC_LB_CNT_MASK GENMASK(31, 28)
#define LLCC_LB_CNT_SHIFT 28 #define LLCC_LB_CNT_SHIFT 28
/* Single & double bit syndrome register offsets */
#define TRP_ECC_SB_ERR_SYN0 0x0002304c
#define TRP_ECC_DB_ERR_SYN0 0x00020370
#define DRP_ECC_SB_ERR_SYN0 0x0004204c
#define DRP_ECC_DB_ERR_SYN0 0x00042070
/* Error register offsets */
#define TRP_ECC_ERROR_STATUS1 0x00020348
#define TRP_ECC_ERROR_STATUS0 0x00020344
#define DRP_ECC_ERROR_STATUS1 0x00042048
#define DRP_ECC_ERROR_STATUS0 0x00042044
/* TRP, DRP interrupt register offsets */
#define DRP_INTERRUPT_STATUS 0x00041000
#define TRP_INTERRUPT_0_STATUS 0x00020480
#define DRP_INTERRUPT_CLEAR 0x00041008
#define DRP_ECC_ERROR_CNTR_CLEAR 0x00040004
#define TRP_INTERRUPT_0_CLEAR 0x00020484
#define TRP_ECC_ERROR_CNTR_CLEAR 0x00020440
/* Mask and shift macros */ /* Mask and shift macros */
#define ECC_DB_ERR_COUNT_MASK GENMASK(4, 0) #define ECC_DB_ERR_COUNT_MASK GENMASK(4, 0)
#define ECC_DB_ERR_WAYS_MASK GENMASK(31, 16) #define ECC_DB_ERR_WAYS_MASK GENMASK(31, 16)
...@@ -60,15 +39,6 @@ ...@@ -60,15 +39,6 @@
#define DRP_TRP_INT_CLEAR GENMASK(1, 0) #define DRP_TRP_INT_CLEAR GENMASK(1, 0)
#define DRP_TRP_CNT_CLEAR GENMASK(1, 0) #define DRP_TRP_CNT_CLEAR GENMASK(1, 0)
/* Config registers offsets*/
#define DRP_ECC_ERROR_CFG 0x00040000
/* Tag RAM, Data RAM interrupt register offsets */
#define CMN_INTERRUPT_0_ENABLE 0x0003001c
#define CMN_INTERRUPT_2_ENABLE 0x0003003c
#define TRP_INTERRUPT_0_ENABLE 0x00020488
#define DRP_INTERRUPT_ENABLE 0x0004100c
#define SB_ERROR_THRESHOLD 0x1 #define SB_ERROR_THRESHOLD 0x1
#define SB_ERROR_THRESHOLD_SHIFT 24 #define SB_ERROR_THRESHOLD_SHIFT 24
#define SB_DB_TRP_INTERRUPT_ENABLE 0x3 #define SB_DB_TRP_INTERRUPT_ENABLE 0x3
...@@ -88,9 +58,6 @@ enum { ...@@ -88,9 +58,6 @@ enum {
static const struct llcc_edac_reg_data edac_reg_data[] = { static const struct llcc_edac_reg_data edac_reg_data[] = {
[LLCC_DRAM_CE] = { [LLCC_DRAM_CE] = {
.name = "DRAM Single-bit", .name = "DRAM Single-bit",
.synd_reg = DRP_ECC_SB_ERR_SYN0,
.count_status_reg = DRP_ECC_ERROR_STATUS1,
.ways_status_reg = DRP_ECC_ERROR_STATUS0,
.reg_cnt = DRP_SYN_REG_CNT, .reg_cnt = DRP_SYN_REG_CNT,
.count_mask = ECC_SB_ERR_COUNT_MASK, .count_mask = ECC_SB_ERR_COUNT_MASK,
.ways_mask = ECC_SB_ERR_WAYS_MASK, .ways_mask = ECC_SB_ERR_WAYS_MASK,
...@@ -98,9 +65,6 @@ static const struct llcc_edac_reg_data edac_reg_data[] = { ...@@ -98,9 +65,6 @@ static const struct llcc_edac_reg_data edac_reg_data[] = {
}, },
[LLCC_DRAM_UE] = { [LLCC_DRAM_UE] = {
.name = "DRAM Double-bit", .name = "DRAM Double-bit",
.synd_reg = DRP_ECC_DB_ERR_SYN0,
.count_status_reg = DRP_ECC_ERROR_STATUS1,
.ways_status_reg = DRP_ECC_ERROR_STATUS0,
.reg_cnt = DRP_SYN_REG_CNT, .reg_cnt = DRP_SYN_REG_CNT,
.count_mask = ECC_DB_ERR_COUNT_MASK, .count_mask = ECC_DB_ERR_COUNT_MASK,
.ways_mask = ECC_DB_ERR_WAYS_MASK, .ways_mask = ECC_DB_ERR_WAYS_MASK,
...@@ -108,9 +72,6 @@ static const struct llcc_edac_reg_data edac_reg_data[] = { ...@@ -108,9 +72,6 @@ static const struct llcc_edac_reg_data edac_reg_data[] = {
}, },
[LLCC_TRAM_CE] = { [LLCC_TRAM_CE] = {
.name = "TRAM Single-bit", .name = "TRAM Single-bit",
.synd_reg = TRP_ECC_SB_ERR_SYN0,
.count_status_reg = TRP_ECC_ERROR_STATUS1,
.ways_status_reg = TRP_ECC_ERROR_STATUS0,
.reg_cnt = TRP_SYN_REG_CNT, .reg_cnt = TRP_SYN_REG_CNT,
.count_mask = ECC_SB_ERR_COUNT_MASK, .count_mask = ECC_SB_ERR_COUNT_MASK,
.ways_mask = ECC_SB_ERR_WAYS_MASK, .ways_mask = ECC_SB_ERR_WAYS_MASK,
...@@ -118,9 +79,6 @@ static const struct llcc_edac_reg_data edac_reg_data[] = { ...@@ -118,9 +79,6 @@ static const struct llcc_edac_reg_data edac_reg_data[] = {
}, },
[LLCC_TRAM_UE] = { [LLCC_TRAM_UE] = {
.name = "TRAM Double-bit", .name = "TRAM Double-bit",
.synd_reg = TRP_ECC_DB_ERR_SYN0,
.count_status_reg = TRP_ECC_ERROR_STATUS1,
.ways_status_reg = TRP_ECC_ERROR_STATUS0,
.reg_cnt = TRP_SYN_REG_CNT, .reg_cnt = TRP_SYN_REG_CNT,
.count_mask = ECC_DB_ERR_COUNT_MASK, .count_mask = ECC_DB_ERR_COUNT_MASK,
.ways_mask = ECC_DB_ERR_WAYS_MASK, .ways_mask = ECC_DB_ERR_WAYS_MASK,
...@@ -128,7 +86,7 @@ static const struct llcc_edac_reg_data edac_reg_data[] = { ...@@ -128,7 +86,7 @@ static const struct llcc_edac_reg_data edac_reg_data[] = {
}, },
}; };
static int qcom_llcc_core_setup(struct regmap *llcc_bcast_regmap) static int qcom_llcc_core_setup(struct llcc_drv_data *drv, struct regmap *llcc_bcast_regmap)
{ {
u32 sb_err_threshold; u32 sb_err_threshold;
int ret; int ret;
...@@ -137,31 +95,31 @@ static int qcom_llcc_core_setup(struct regmap *llcc_bcast_regmap) ...@@ -137,31 +95,31 @@ static int qcom_llcc_core_setup(struct regmap *llcc_bcast_regmap)
* Configure interrupt enable registers such that Tag, Data RAM related * Configure interrupt enable registers such that Tag, Data RAM related
* interrupts are propagated to interrupt controller for servicing * interrupts are propagated to interrupt controller for servicing
*/ */
ret = regmap_update_bits(llcc_bcast_regmap, CMN_INTERRUPT_2_ENABLE, ret = regmap_update_bits(llcc_bcast_regmap, drv->edac_reg_offset->cmn_interrupt_2_enable,
TRP0_INTERRUPT_ENABLE, TRP0_INTERRUPT_ENABLE,
TRP0_INTERRUPT_ENABLE); TRP0_INTERRUPT_ENABLE);
if (ret) if (ret)
return ret; return ret;
ret = regmap_update_bits(llcc_bcast_regmap, TRP_INTERRUPT_0_ENABLE, ret = regmap_update_bits(llcc_bcast_regmap, drv->edac_reg_offset->trp_interrupt_0_enable,
SB_DB_TRP_INTERRUPT_ENABLE, SB_DB_TRP_INTERRUPT_ENABLE,
SB_DB_TRP_INTERRUPT_ENABLE); SB_DB_TRP_INTERRUPT_ENABLE);
if (ret) if (ret)
return ret; return ret;
sb_err_threshold = (SB_ERROR_THRESHOLD << SB_ERROR_THRESHOLD_SHIFT); sb_err_threshold = (SB_ERROR_THRESHOLD << SB_ERROR_THRESHOLD_SHIFT);
ret = regmap_write(llcc_bcast_regmap, DRP_ECC_ERROR_CFG, ret = regmap_write(llcc_bcast_regmap, drv->edac_reg_offset->drp_ecc_error_cfg,
sb_err_threshold); sb_err_threshold);
if (ret) if (ret)
return ret; return ret;
ret = regmap_update_bits(llcc_bcast_regmap, CMN_INTERRUPT_2_ENABLE, ret = regmap_update_bits(llcc_bcast_regmap, drv->edac_reg_offset->cmn_interrupt_2_enable,
DRP0_INTERRUPT_ENABLE, DRP0_INTERRUPT_ENABLE,
DRP0_INTERRUPT_ENABLE); DRP0_INTERRUPT_ENABLE);
if (ret) if (ret)
return ret; return ret;
ret = regmap_write(llcc_bcast_regmap, DRP_INTERRUPT_ENABLE, ret = regmap_write(llcc_bcast_regmap, drv->edac_reg_offset->drp_interrupt_enable,
SB_DB_DRP_INTERRUPT_ENABLE); SB_DB_DRP_INTERRUPT_ENABLE);
return ret; return ret;
} }
...@@ -170,29 +128,33 @@ static int qcom_llcc_core_setup(struct regmap *llcc_bcast_regmap) ...@@ -170,29 +128,33 @@ static int qcom_llcc_core_setup(struct regmap *llcc_bcast_regmap)
static int static int
qcom_llcc_clear_error_status(int err_type, struct llcc_drv_data *drv) qcom_llcc_clear_error_status(int err_type, struct llcc_drv_data *drv)
{ {
int ret = 0; int ret;
switch (err_type) { switch (err_type) {
case LLCC_DRAM_CE: case LLCC_DRAM_CE:
case LLCC_DRAM_UE: case LLCC_DRAM_UE:
ret = regmap_write(drv->bcast_regmap, DRP_INTERRUPT_CLEAR, ret = regmap_write(drv->bcast_regmap,
drv->edac_reg_offset->drp_interrupt_clear,
DRP_TRP_INT_CLEAR); DRP_TRP_INT_CLEAR);
if (ret) if (ret)
return ret; return ret;
ret = regmap_write(drv->bcast_regmap, DRP_ECC_ERROR_CNTR_CLEAR, ret = regmap_write(drv->bcast_regmap,
drv->edac_reg_offset->drp_ecc_error_cntr_clear,
DRP_TRP_CNT_CLEAR); DRP_TRP_CNT_CLEAR);
if (ret) if (ret)
return ret; return ret;
break; break;
case LLCC_TRAM_CE: case LLCC_TRAM_CE:
case LLCC_TRAM_UE: case LLCC_TRAM_UE:
ret = regmap_write(drv->bcast_regmap, TRP_INTERRUPT_0_CLEAR, ret = regmap_write(drv->bcast_regmap,
drv->edac_reg_offset->trp_interrupt_0_clear,
DRP_TRP_INT_CLEAR); DRP_TRP_INT_CLEAR);
if (ret) if (ret)
return ret; return ret;
ret = regmap_write(drv->bcast_regmap, TRP_ECC_ERROR_CNTR_CLEAR, ret = regmap_write(drv->bcast_regmap,
drv->edac_reg_offset->trp_ecc_error_cntr_clear,
DRP_TRP_CNT_CLEAR); DRP_TRP_CNT_CLEAR);
if (ret) if (ret)
return ret; return ret;
...@@ -205,16 +167,54 @@ qcom_llcc_clear_error_status(int err_type, struct llcc_drv_data *drv) ...@@ -205,16 +167,54 @@ qcom_llcc_clear_error_status(int err_type, struct llcc_drv_data *drv)
return ret; return ret;
} }
struct qcom_llcc_syn_regs {
u32 synd_reg;
u32 count_status_reg;
u32 ways_status_reg;
};
static void get_reg_offsets(struct llcc_drv_data *drv, int err_type,
struct qcom_llcc_syn_regs *syn_regs)
{
const struct llcc_edac_reg_offset *edac_reg_offset = drv->edac_reg_offset;
switch (err_type) {
case LLCC_DRAM_CE:
syn_regs->synd_reg = edac_reg_offset->drp_ecc_sb_err_syn0;
syn_regs->count_status_reg = edac_reg_offset->drp_ecc_error_status1;
syn_regs->ways_status_reg = edac_reg_offset->drp_ecc_error_status0;
break;
case LLCC_DRAM_UE:
syn_regs->synd_reg = edac_reg_offset->drp_ecc_db_err_syn0;
syn_regs->count_status_reg = edac_reg_offset->drp_ecc_error_status1;
syn_regs->ways_status_reg = edac_reg_offset->drp_ecc_error_status0;
break;
case LLCC_TRAM_CE:
syn_regs->synd_reg = edac_reg_offset->trp_ecc_sb_err_syn0;
syn_regs->count_status_reg = edac_reg_offset->trp_ecc_error_status1;
syn_regs->ways_status_reg = edac_reg_offset->trp_ecc_error_status0;
break;
case LLCC_TRAM_UE:
syn_regs->synd_reg = edac_reg_offset->trp_ecc_db_err_syn0;
syn_regs->count_status_reg = edac_reg_offset->trp_ecc_error_status1;
syn_regs->ways_status_reg = edac_reg_offset->trp_ecc_error_status0;
break;
}
}
/* Dump Syndrome registers data for Tag RAM, Data RAM bit errors*/ /* Dump Syndrome registers data for Tag RAM, Data RAM bit errors*/
static int static int
dump_syn_reg_values(struct llcc_drv_data *drv, u32 bank, int err_type) dump_syn_reg_values(struct llcc_drv_data *drv, u32 bank, int err_type)
{ {
struct llcc_edac_reg_data reg_data = edac_reg_data[err_type]; struct llcc_edac_reg_data reg_data = edac_reg_data[err_type];
struct qcom_llcc_syn_regs regs = { };
int err_cnt, err_ways, ret, i; int err_cnt, err_ways, ret, i;
u32 synd_reg, synd_val; u32 synd_reg, synd_val;
get_reg_offsets(drv, err_type, &regs);
for (i = 0; i < reg_data.reg_cnt; i++) { for (i = 0; i < reg_data.reg_cnt; i++) {
synd_reg = reg_data.synd_reg + (i * 4); synd_reg = regs.synd_reg + (i * 4);
ret = regmap_read(drv->regmaps[bank], synd_reg, ret = regmap_read(drv->regmaps[bank], synd_reg,
&synd_val); &synd_val);
if (ret) if (ret)
...@@ -224,7 +224,7 @@ dump_syn_reg_values(struct llcc_drv_data *drv, u32 bank, int err_type) ...@@ -224,7 +224,7 @@ dump_syn_reg_values(struct llcc_drv_data *drv, u32 bank, int err_type)
reg_data.name, i, synd_val); reg_data.name, i, synd_val);
} }
ret = regmap_read(drv->regmaps[bank], reg_data.count_status_reg, ret = regmap_read(drv->regmaps[bank], regs.count_status_reg,
&err_cnt); &err_cnt);
if (ret) if (ret)
goto clear; goto clear;
...@@ -234,7 +234,7 @@ dump_syn_reg_values(struct llcc_drv_data *drv, u32 bank, int err_type) ...@@ -234,7 +234,7 @@ dump_syn_reg_values(struct llcc_drv_data *drv, u32 bank, int err_type)
edac_printk(KERN_CRIT, EDAC_LLCC, "%s: Error count: 0x%4x\n", edac_printk(KERN_CRIT, EDAC_LLCC, "%s: Error count: 0x%4x\n",
reg_data.name, err_cnt); reg_data.name, err_cnt);
ret = regmap_read(drv->regmaps[bank], reg_data.ways_status_reg, ret = regmap_read(drv->regmaps[bank], regs.ways_status_reg,
&err_ways); &err_ways);
if (ret) if (ret)
goto clear; goto clear;
...@@ -295,7 +295,7 @@ static irqreturn_t llcc_ecc_irq_handler(int irq, void *edev_ctl) ...@@ -295,7 +295,7 @@ static irqreturn_t llcc_ecc_irq_handler(int irq, void *edev_ctl)
/* Iterate over the banks and look for Tag RAM or Data RAM errors */ /* Iterate over the banks and look for Tag RAM or Data RAM errors */
for (i = 0; i < drv->num_banks; i++) { for (i = 0; i < drv->num_banks; i++) {
ret = regmap_read(drv->regmaps[i], DRP_INTERRUPT_STATUS, ret = regmap_read(drv->regmaps[i], drv->edac_reg_offset->drp_interrupt_status,
&drp_error); &drp_error);
if (!ret && (drp_error & SB_ECC_ERROR)) { if (!ret && (drp_error & SB_ECC_ERROR)) {
...@@ -310,7 +310,7 @@ static irqreturn_t llcc_ecc_irq_handler(int irq, void *edev_ctl) ...@@ -310,7 +310,7 @@ static irqreturn_t llcc_ecc_irq_handler(int irq, void *edev_ctl)
if (!ret) if (!ret)
irq_rc = IRQ_HANDLED; irq_rc = IRQ_HANDLED;
ret = regmap_read(drv->regmaps[i], TRP_INTERRUPT_0_STATUS, ret = regmap_read(drv->regmaps[i], drv->edac_reg_offset->trp_interrupt_0_status,
&trp_error); &trp_error);
if (!ret && (trp_error & SB_ECC_ERROR)) { if (!ret && (trp_error & SB_ECC_ERROR)) {
...@@ -342,7 +342,7 @@ static int qcom_llcc_edac_probe(struct platform_device *pdev) ...@@ -342,7 +342,7 @@ static int qcom_llcc_edac_probe(struct platform_device *pdev)
int ecc_irq; int ecc_irq;
int rc; int rc;
rc = qcom_llcc_core_setup(llcc_driv_data->bcast_regmap); rc = qcom_llcc_core_setup(llcc_driv_data, llcc_driv_data->bcast_regmap);
if (rc) if (rc)
return rc; return rc;
......
...@@ -424,6 +424,7 @@ ffa_setup_and_transmit(u32 func_id, void *buffer, u32 max_fragsize, ...@@ -424,6 +424,7 @@ ffa_setup_and_transmit(u32 func_id, void *buffer, u32 max_fragsize,
ep_mem_access->flag = 0; ep_mem_access->flag = 0;
ep_mem_access->reserved = 0; ep_mem_access->reserved = 0;
} }
mem_region->handle = 0;
mem_region->reserved_0 = 0; mem_region->reserved_0 = 0;
mem_region->reserved_1 = 0; mem_region->reserved_1 = 0;
mem_region->ep_count = args->nattrs; mem_region->ep_count = args->nattrs;
......
...@@ -32,4 +32,5 @@ obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o ...@@ -32,4 +32,5 @@ obj-$(CONFIG_QCOM_RPMHPD) += rpmhpd.o
obj-$(CONFIG_QCOM_RPMPD) += rpmpd.o obj-$(CONFIG_QCOM_RPMPD) += rpmpd.o
obj-$(CONFIG_QCOM_KRYO_L2_ACCESSORS) += kryo-l2-accessors.o obj-$(CONFIG_QCOM_KRYO_L2_ACCESSORS) += kryo-l2-accessors.o
obj-$(CONFIG_QCOM_ICC_BWMON) += icc-bwmon.o obj-$(CONFIG_QCOM_ICC_BWMON) += icc-bwmon.o
obj-$(CONFIG_QCOM_INLINE_CRYPTO_ENGINE) += ice.o qcom_ice-objs += ice.o
obj-$(CONFIG_QCOM_INLINE_CRYPTO_ENGINE) += qcom_ice.o
...@@ -773,12 +773,12 @@ static int bwmon_probe(struct platform_device *pdev) ...@@ -773,12 +773,12 @@ static int bwmon_probe(struct platform_device *pdev)
bwmon->max_bw_kbps = UINT_MAX; bwmon->max_bw_kbps = UINT_MAX;
opp = dev_pm_opp_find_bw_floor(dev, &bwmon->max_bw_kbps, 0); opp = dev_pm_opp_find_bw_floor(dev, &bwmon->max_bw_kbps, 0);
if (IS_ERR(opp)) if (IS_ERR(opp))
return dev_err_probe(dev, ret, "failed to find max peak bandwidth\n"); return dev_err_probe(dev, PTR_ERR(opp), "failed to find max peak bandwidth\n");
bwmon->min_bw_kbps = 0; bwmon->min_bw_kbps = 0;
opp = dev_pm_opp_find_bw_ceil(dev, &bwmon->min_bw_kbps, 0); opp = dev_pm_opp_find_bw_ceil(dev, &bwmon->min_bw_kbps, 0);
if (IS_ERR(opp)) if (IS_ERR(opp))
return dev_err_probe(dev, ret, "failed to find min peak bandwidth\n"); return dev_err_probe(dev, PTR_ERR(opp), "failed to find min peak bandwidth\n");
bwmon->dev = dev; bwmon->dev = dev;
......
...@@ -296,7 +296,7 @@ static int qcom_ramp_controller_probe(struct platform_device *pdev) ...@@ -296,7 +296,7 @@ static int qcom_ramp_controller_probe(struct platform_device *pdev)
return -ENOMEM; return -ENOMEM;
qrc->desc = device_get_match_data(&pdev->dev); qrc->desc = device_get_match_data(&pdev->dev);
if (!qrc) if (!qrc->desc)
return -EINVAL; return -EINVAL;
qrc->regmap = devm_regmap_init_mmio(&pdev->dev, base, &qrc_regmap_config); qrc->regmap = devm_regmap_init_mmio(&pdev->dev, base, &qrc_regmap_config);
......
...@@ -233,6 +233,7 @@ static int qcom_rmtfs_mem_probe(struct platform_device *pdev) ...@@ -233,6 +233,7 @@ static int qcom_rmtfs_mem_probe(struct platform_device *pdev)
num_vmids = 0; num_vmids = 0;
} else if (num_vmids < 0) { } else if (num_vmids < 0) {
dev_err(&pdev->dev, "failed to count qcom,vmid elements: %d\n", num_vmids); dev_err(&pdev->dev, "failed to count qcom,vmid elements: %d\n", num_vmids);
ret = num_vmids;
goto remove_cdev; goto remove_cdev;
} else if (num_vmids > NUM_MAX_VMIDS) { } else if (num_vmids > NUM_MAX_VMIDS) {
dev_warn(&pdev->dev, dev_warn(&pdev->dev,
......
...@@ -1073,7 +1073,7 @@ static int rpmh_rsc_probe(struct platform_device *pdev) ...@@ -1073,7 +1073,7 @@ static int rpmh_rsc_probe(struct platform_device *pdev)
drv->ver.minor = rsc_id & (MINOR_VER_MASK << MINOR_VER_SHIFT); drv->ver.minor = rsc_id & (MINOR_VER_MASK << MINOR_VER_SHIFT);
drv->ver.minor >>= MINOR_VER_SHIFT; drv->ver.minor >>= MINOR_VER_SHIFT;
if (drv->ver.major == 3 && drv->ver.minor >= 0) if (drv->ver.major == 3)
drv->regs = rpmh_rsc_reg_offset_ver_3_0; drv->regs = rpmh_rsc_reg_offset_ver_3_0;
else else
drv->regs = rpmh_rsc_reg_offset_ver_2_7; drv->regs = rpmh_rsc_reg_offset_ver_2_7;
......
...@@ -342,6 +342,21 @@ static const struct rpmhpd_desc sm8150_desc = { ...@@ -342,6 +342,21 @@ static const struct rpmhpd_desc sm8150_desc = {
.num_pds = ARRAY_SIZE(sm8150_rpmhpds), .num_pds = ARRAY_SIZE(sm8150_rpmhpds),
}; };
static struct rpmhpd *sa8155p_rpmhpds[] = {
[SA8155P_CX] = &cx_w_mx_parent,
[SA8155P_CX_AO] = &cx_ao_w_mx_parent,
[SA8155P_EBI] = &ebi,
[SA8155P_GFX] = &gfx,
[SA8155P_MSS] = &mss,
[SA8155P_MX] = &mx,
[SA8155P_MX_AO] = &mx_ao,
};
static const struct rpmhpd_desc sa8155p_desc = {
.rpmhpds = sa8155p_rpmhpds,
.num_pds = ARRAY_SIZE(sa8155p_rpmhpds),
};
/* SM8250 RPMH powerdomains */ /* SM8250 RPMH powerdomains */
static struct rpmhpd *sm8250_rpmhpds[] = { static struct rpmhpd *sm8250_rpmhpds[] = {
[SM8250_CX] = &cx_w_mx_parent, [SM8250_CX] = &cx_w_mx_parent,
...@@ -519,6 +534,7 @@ static const struct rpmhpd_desc sc8280xp_desc = { ...@@ -519,6 +534,7 @@ static const struct rpmhpd_desc sc8280xp_desc = {
static const struct of_device_id rpmhpd_match_table[] = { static const struct of_device_id rpmhpd_match_table[] = {
{ .compatible = "qcom,qdu1000-rpmhpd", .data = &qdu1000_desc }, { .compatible = "qcom,qdu1000-rpmhpd", .data = &qdu1000_desc },
{ .compatible = "qcom,sa8155p-rpmhpd", .data = &sa8155p_desc },
{ .compatible = "qcom,sa8540p-rpmhpd", .data = &sa8540p_desc }, { .compatible = "qcom,sa8540p-rpmhpd", .data = &sa8540p_desc },
{ .compatible = "qcom,sa8775p-rpmhpd", .data = &sa8775p_desc }, { .compatible = "qcom,sa8775p-rpmhpd", .data = &sa8775p_desc },
{ .compatible = "qcom,sc7180-rpmhpd", .data = &sc7180_desc }, { .compatible = "qcom,sc7180-rpmhpd", .data = &sc7180_desc },
......
...@@ -118,16 +118,18 @@ struct tee_cmd_unmap_shared_mem { ...@@ -118,16 +118,18 @@ struct tee_cmd_unmap_shared_mem {
/** /**
* struct tee_cmd_load_ta - load Trusted Application (TA) binary into TEE * struct tee_cmd_load_ta - load Trusted Application (TA) binary into TEE
* @low_addr: [in] bits [31:0] of the physical address of the TA binary * @low_addr: [in] bits [31:0] of the physical address of the TA binary
* @hi_addr: [in] bits [63:32] of the physical address of the TA binary * @hi_addr: [in] bits [63:32] of the physical address of the TA binary
* @size: [in] size of TA binary in bytes * @size: [in] size of TA binary in bytes
* @ta_handle: [out] return handle of the loaded TA * @ta_handle: [out] return handle of the loaded TA
* @return_origin: [out] origin of return code after TEE processing
*/ */
struct tee_cmd_load_ta { struct tee_cmd_load_ta {
u32 low_addr; u32 low_addr;
u32 hi_addr; u32 hi_addr;
u32 size; u32 size;
u32 ta_handle; u32 ta_handle;
u32 return_origin;
}; };
/** /**
......
...@@ -423,19 +423,23 @@ int handle_load_ta(void *data, u32 size, struct tee_ioctl_open_session_arg *arg) ...@@ -423,19 +423,23 @@ int handle_load_ta(void *data, u32 size, struct tee_ioctl_open_session_arg *arg)
if (ret) { if (ret) {
arg->ret_origin = TEEC_ORIGIN_COMMS; arg->ret_origin = TEEC_ORIGIN_COMMS;
arg->ret = TEEC_ERROR_COMMUNICATION; arg->ret = TEEC_ERROR_COMMUNICATION;
} else if (arg->ret == TEEC_SUCCESS) { } else {
ret = get_ta_refcount(load_cmd.ta_handle); arg->ret_origin = load_cmd.return_origin;
if (!ret) {
arg->ret_origin = TEEC_ORIGIN_COMMS; if (arg->ret == TEEC_SUCCESS) {
arg->ret = TEEC_ERROR_OUT_OF_MEMORY; ret = get_ta_refcount(load_cmd.ta_handle);
if (!ret) {
/* Unload the TA on error */ arg->ret_origin = TEEC_ORIGIN_COMMS;
unload_cmd.ta_handle = load_cmd.ta_handle; arg->ret = TEEC_ERROR_OUT_OF_MEMORY;
psp_tee_process_cmd(TEE_CMD_ID_UNLOAD_TA,
(void *)&unload_cmd, /* Unload the TA on error */
sizeof(unload_cmd), &ret); unload_cmd.ta_handle = load_cmd.ta_handle;
} else { psp_tee_process_cmd(TEE_CMD_ID_UNLOAD_TA,
set_session_id(load_cmd.ta_handle, 0, &arg->session); (void *)&unload_cmd,
sizeof(unload_cmd), &ret);
} else {
set_session_id(load_cmd.ta_handle, 0, &arg->session);
}
} }
} }
mutex_unlock(&ta_refcount_mutex); mutex_unlock(&ta_refcount_mutex);
......
...@@ -90,6 +90,15 @@ ...@@ -90,6 +90,15 @@
#define SM8150_MMCX 9 #define SM8150_MMCX 9
#define SM8150_MMCX_AO 10 #define SM8150_MMCX_AO 10
/* SA8155P is a special case, kept for backwards compatibility */
#define SA8155P_CX SM8150_CX
#define SA8155P_CX_AO SM8150_CX_AO
#define SA8155P_EBI SM8150_EBI
#define SA8155P_GFX SM8150_GFX
#define SA8155P_MSS SM8150_MSS
#define SA8155P_MX SM8150_MX
#define SA8155P_MX_AO SM8150_MX_AO
/* SM8250 Power Domain Indexes */ /* SM8250 Power Domain Indexes */
#define SM8250_CX 0 #define SM8250_CX 0
#define SM8250_CX_AO 1 #define SM8250_CX_AO 1
......
...@@ -69,9 +69,6 @@ struct llcc_slice_desc { ...@@ -69,9 +69,6 @@ struct llcc_slice_desc {
/** /**
* struct llcc_edac_reg_data - llcc edac registers data for each error type * struct llcc_edac_reg_data - llcc edac registers data for each error type
* @name: Name of the error * @name: Name of the error
* @synd_reg: Syndrome register address
* @count_status_reg: Status register address to read the error count
* @ways_status_reg: Status register address to read the error ways
* @reg_cnt: Number of registers * @reg_cnt: Number of registers
* @count_mask: Mask value to get the error count * @count_mask: Mask value to get the error count
* @ways_mask: Mask value to get the error ways * @ways_mask: Mask value to get the error ways
...@@ -80,9 +77,6 @@ struct llcc_slice_desc { ...@@ -80,9 +77,6 @@ struct llcc_slice_desc {
*/ */
struct llcc_edac_reg_data { struct llcc_edac_reg_data {
char *name; char *name;
u64 synd_reg;
u64 count_status_reg;
u64 ways_status_reg;
u32 reg_cnt; u32 reg_cnt;
u32 count_mask; u32 count_mask;
u32 ways_mask; u32 ways_mask;
......
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