Commit 32db9f10 authored by Linus Torvalds's avatar Linus Torvalds

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

Pull ARM DT and driver fixes from Arnd Bergmann:
 "For the devicetree files, there are a total of 20 patches, almost
  entirely for 32-bit machines:

   - The Allwinner/sun9i r40 SoC dtsi file contains a number of issues,
     both for correctness and for style that are addressed in separate
     patches. This causes most of the changed lines of the DT updates
     this time.

   - More Allwinner updates fixing the identification of the security
     system on sun8i/A33, a recent regression of the A83t ethernet, and
     a few board specific issues on the TBS-A711 macine.

   - Several bug fixes for OMAP dts files, most notably fixing the
     timings for the NAND flash on the Nokia N900 that regressed a while
     ago after the move to configuring them from DT. Some other OMAPs
     now set the correct dma limits on the L3 bus, and a regression fix
     addresses lost Ethernet on dm814x

   - One incorrect setting in the newly added Raspberry Pi Zero W that
     may cause issues with the SD card controller.

   - A missing property on the bcm2835 firmware node caused incorrect
     DMA settings.

   - An old bug on the oxnas platform causing spurious interrupts is
     finally addressed.

   - A regression on the Exynos Midas board broke the OLED panel power
     supply.

   - The i.MX6 phycore SoM specified the wrong voltage for the SoC, this
     is now set to the values from the datasheet.

   - Some 64-bit machines use a deprecated string to identify the PSCI
     firmware.

  There are also several small code fixes addressing mostly serious
  issues:

   - Fix the sunxi rsb bus access to no longer return incorrect data
     when mixing 8 and 16 bit I/O.

   - Fix a suspend/resume regression on the OMAP2+ lcdc from a missing
     quirk in the ti-sysc driver

   - Fix a NULL pointer access from a race in the fsl dpio driver

   - Fix a v5.5 regression in the exynos-chipid driver that caused an
     invalid error code probing the device on non-exynos platforms

   - Fix an out-of-bounds access in the AMD TEE driver"

* tag 'arm-soc-fixes-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (24 commits)
  soc: samsung: chipid: Fix return value on non-Exynos platforms
  arm64: dts: Fix leftover entry-methods for PSCI
  ARM: dts: exynos: Fix regulator node aliasing on Midas-based boards
  ARM: dts: oxnas: Fix clear-mask property
  ARM: dts: bcm283x: Fix vc4's firmware bus DMA limitations
  ARM: dts: omap5: Add bus_dma_limit for L3 bus
  ARM: dts: omap4-droid4: Fix lost touchscreen interrupts
  ARM: dts: dra7: Add bus_dma_limit for L3 bus
  ARM: bcm2835-rpi-zero-w: Add missing pinctrl name
  ARM: dts: sun8i: a33: add the new SS compatible
  dt-bindings: crypto: add new compatible for A33 SS
  ARM: dts: sun8i: r40: Move SPI device nodes based on address order
  ARM: dts: sun8i: r40: Fix register base address for SPI2 and SPI3
  ARM: dts: sun8i: r40: Move AHCI device node based on address order
  ARM: dts: imx6: phycore-som: fix arm and soc minimum voltage
  soc: fsl: dpio: register dpio irq handlers after dpio create
  tee: amdtee: out of bounds read in find_session()
  ARM: dts: N900: fix onenand timings
  bus: ti-sysc: Fix quirk flags for lcdc on am335x
  ARM: dts: Fix dm814x Ethernet by changing to use rgmii-id mode
  ...
parents 823846c3 c8042d1e
...@@ -23,6 +23,8 @@ properties: ...@@ -23,6 +23,8 @@ properties:
- items: - items:
- const: allwinner,sun7i-a20-crypto - const: allwinner,sun7i-a20-crypto
- const: allwinner,sun4i-a10-crypto - const: allwinner,sun4i-a10-crypto
- items:
- const: allwinner,sun8i-a33-crypto
reg: reg:
maxItems: 1 maxItems: 1
......
...@@ -112,6 +112,7 @@ &hdmi { ...@@ -112,6 +112,7 @@ &hdmi {
&sdhci { &sdhci {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <0>; #size-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>; pinctrl-0 = <&emmc_gpio34 &gpclk2_gpio43>;
bus-width = <4>; bus-width = <4>;
mmc-pwrseq = <&wifi_pwrseq>; mmc-pwrseq = <&wifi_pwrseq>;
......
...@@ -15,6 +15,7 @@ soc { ...@@ -15,6 +15,7 @@ soc {
firmware: firmware { firmware: firmware {
compatible = "raspberrypi,bcm2835-firmware", "simple-bus"; compatible = "raspberrypi,bcm2835-firmware", "simple-bus";
mboxes = <&mailbox>; mboxes = <&mailbox>;
dma-ranges;
}; };
power: power { power: power {
......
...@@ -24,12 +24,12 @@ vmmcsd_fixed: fixedregulator0 { ...@@ -24,12 +24,12 @@ vmmcsd_fixed: fixedregulator0 {
&cpsw_emac0 { &cpsw_emac0 {
phy-handle = <&ethphy0>; phy-handle = <&ethphy0>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
}; };
&cpsw_emac1 { &cpsw_emac1 {
phy-handle = <&ethphy1>; phy-handle = <&ethphy1>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
}; };
&davinci_mdio { &davinci_mdio {
......
...@@ -33,12 +33,12 @@ vmmcsd_fixed: fixedregulator0 { ...@@ -33,12 +33,12 @@ vmmcsd_fixed: fixedregulator0 {
&cpsw_emac0 { &cpsw_emac0 {
phy-handle = <&ethphy0>; phy-handle = <&ethphy0>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
}; };
&cpsw_emac1 { &cpsw_emac1 {
phy-handle = <&ethphy1>; phy-handle = <&ethphy1>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
}; };
&davinci_mdio { &davinci_mdio {
......
...@@ -24,12 +24,12 @@ vmmcsd_fixed: fixedregulator0 { ...@@ -24,12 +24,12 @@ vmmcsd_fixed: fixedregulator0 {
&cpsw_emac0 { &cpsw_emac0 {
phy-handle = <&ethphy0>; phy-handle = <&ethphy0>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
}; };
&cpsw_emac1 { &cpsw_emac1 {
phy-handle = <&ethphy1>; phy-handle = <&ethphy1>;
phy-mode = "rgmii"; phy-mode = "rgmii-id";
}; };
&davinci_mdio { &davinci_mdio {
......
...@@ -148,6 +148,7 @@ ocp { ...@@ -148,6 +148,7 @@ ocp {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0x0 0x0 0x0 0xc0000000>; ranges = <0x0 0x0 0x0 0xc0000000>;
dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
ti,hwmods = "l3_main_1", "l3_main_2"; ti,hwmods = "l3_main_1", "l3_main_2";
reg = <0x0 0x44000000 0x0 0x1000000>, reg = <0x0 0x44000000 0x0 0x1000000>,
<0x0 0x45000000 0x0 0x1000>; <0x0 0x45000000 0x0 0x1000>;
......
...@@ -33,7 +33,7 @@ flash-led { ...@@ -33,7 +33,7 @@ flash-led {
}; };
}; };
lcd_vdd3_reg: voltage-regulator-6 { lcd_vdd3_reg: voltage-regulator-7 {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "LCD_VDD_2.2V"; regulator-name = "LCD_VDD_2.2V";
regulator-min-microvolt = <2200000>; regulator-min-microvolt = <2200000>;
...@@ -42,7 +42,7 @@ lcd_vdd3_reg: voltage-regulator-6 { ...@@ -42,7 +42,7 @@ lcd_vdd3_reg: voltage-regulator-6 {
enable-active-high; enable-active-high;
}; };
ps_als_reg: voltage-regulator-7 { ps_als_reg: voltage-regulator-8 {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "LED_A_3.0V"; regulator-name = "LED_A_3.0V";
regulator-min-microvolt = <3000000>; regulator-min-microvolt = <3000000>;
......
...@@ -13,7 +13,7 @@ memory@40000000 { ...@@ -13,7 +13,7 @@ memory@40000000 {
/* bootargs are passed in by bootloader */ /* bootargs are passed in by bootloader */
cam_vdda_reg: voltage-regulator-6 { cam_vdda_reg: voltage-regulator-7 {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "CAM_SENSOR_CORE_1.2V"; regulator-name = "CAM_SENSOR_CORE_1.2V";
regulator-min-microvolt = <1200000>; regulator-min-microvolt = <1200000>;
......
...@@ -112,7 +112,7 @@ watchdog { ...@@ -112,7 +112,7 @@ watchdog {
regulators { regulators {
vdd_arm: buck1 { vdd_arm: buck1 {
regulator-name = "vdd_arm"; regulator-name = "vdd_arm";
regulator-min-microvolt = <730000>; regulator-min-microvolt = <925000>;
regulator-max-microvolt = <1380000>; regulator-max-microvolt = <1380000>;
regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
regulator-always-on; regulator-always-on;
...@@ -120,7 +120,7 @@ vdd_arm: buck1 { ...@@ -120,7 +120,7 @@ vdd_arm: buck1 {
vdd_soc: buck2 { vdd_soc: buck2 {
regulator-name = "vdd_soc"; regulator-name = "vdd_soc";
regulator-min-microvolt = <730000>; regulator-min-microvolt = <1150000>;
regulator-max-microvolt = <1380000>; regulator-max-microvolt = <1380000>;
regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>; regulator-initial-mode = <DA9063_BUCK_MODE_SYNC>;
regulator-always-on; regulator-always-on;
......
...@@ -429,7 +429,7 @@ touchscreen@4a { ...@@ -429,7 +429,7 @@ touchscreen@4a {
reset-gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; /* gpio173 */ reset-gpios = <&gpio6 13 GPIO_ACTIVE_HIGH>; /* gpio173 */
/* gpio_183 with sys_nirq2 pad as wakeup */ /* gpio_183 with sys_nirq2 pad as wakeup */
interrupts-extended = <&gpio6 23 IRQ_TYPE_EDGE_FALLING>, interrupts-extended = <&gpio6 23 IRQ_TYPE_LEVEL_LOW>,
<&omap4_pmx_core 0x160>; <&omap4_pmx_core 0x160>;
interrupt-names = "irq", "wakeup"; interrupt-names = "irq", "wakeup";
wakeup-source; wakeup-source;
......
...@@ -854,34 +854,46 @@ onenand@0,0 { ...@@ -854,34 +854,46 @@ onenand@0,0 {
compatible = "ti,omap2-onenand"; compatible = "ti,omap2-onenand";
reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */ reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
/*
* These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
* bootloader set values when booted with v5.1
* (OneNAND Manufacturer: Samsung):
*
* cs0 GPMC_CS_CONFIG1: 0xfb001202
* cs0 GPMC_CS_CONFIG2: 0x00111100
* cs0 GPMC_CS_CONFIG3: 0x00020200
* cs0 GPMC_CS_CONFIG4: 0x11001102
* cs0 GPMC_CS_CONFIG5: 0x03101616
* cs0 GPMC_CS_CONFIG6: 0x90060000
*/
gpmc,sync-read; gpmc,sync-read;
gpmc,sync-write; gpmc,sync-write;
gpmc,burst-length = <16>; gpmc,burst-length = <16>;
gpmc,burst-read; gpmc,burst-read;
gpmc,burst-wrap; gpmc,burst-wrap;
gpmc,burst-write; gpmc,burst-write;
gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */ gpmc,device-width = <2>;
gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */ gpmc,mux-add-data = <2>;
gpmc,cs-on-ns = <0>; gpmc,cs-on-ns = <0>;
gpmc,cs-rd-off-ns = <87>; gpmc,cs-rd-off-ns = <102>;
gpmc,cs-wr-off-ns = <87>; gpmc,cs-wr-off-ns = <102>;
gpmc,adv-on-ns = <0>; gpmc,adv-on-ns = <0>;
gpmc,adv-rd-off-ns = <10>; gpmc,adv-rd-off-ns = <12>;
gpmc,adv-wr-off-ns = <10>; gpmc,adv-wr-off-ns = <12>;
gpmc,oe-on-ns = <15>; gpmc,oe-on-ns = <12>;
gpmc,oe-off-ns = <87>; gpmc,oe-off-ns = <102>;
gpmc,we-on-ns = <0>; gpmc,we-on-ns = <0>;
gpmc,we-off-ns = <87>; gpmc,we-off-ns = <102>;
gpmc,rd-cycle-ns = <112>; gpmc,rd-cycle-ns = <132>;
gpmc,wr-cycle-ns = <112>; gpmc,wr-cycle-ns = <132>;
gpmc,access-ns = <81>; gpmc,access-ns = <96>;
gpmc,page-burst-access-ns = <15>; gpmc,page-burst-access-ns = <18>;
gpmc,bus-turnaround-ns = <0>; gpmc,bus-turnaround-ns = <0>;
gpmc,cycle2cycle-delay-ns = <0>; gpmc,cycle2cycle-delay-ns = <0>;
gpmc,wait-monitoring-ns = <0>; gpmc,wait-monitoring-ns = <0>;
gpmc,clk-activation-ns = <5>; gpmc,clk-activation-ns = <6>;
gpmc,wr-data-mux-bus-ns = <30>; gpmc,wr-data-mux-bus-ns = <36>;
gpmc,wr-access-ns = <81>; gpmc,wr-access-ns = <96>;
gpmc,sync-clk-ps = <15000>; gpmc,sync-clk-ps = <15000>;
/* /*
......
...@@ -143,6 +143,7 @@ ocp { ...@@ -143,6 +143,7 @@ ocp {
#address-cells = <1>; #address-cells = <1>;
#size-cells = <1>; #size-cells = <1>;
ranges = <0 0 0 0xc0000000>; ranges = <0 0 0 0xc0000000>;
dma-ranges = <0x80000000 0x0 0x80000000 0x80000000>;
ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3"; ti,hwmods = "l3_main_1", "l3_main_2", "l3_main_3";
reg = <0 0x44000000 0 0x2000>, reg = <0 0x44000000 0 0x2000>,
<0 0x44800000 0 0x3000>, <0 0x44800000 0 0x3000>,
......
...@@ -323,8 +323,8 @@ intc: interrupt-controller@0 { ...@@ -323,8 +323,8 @@ intc: interrupt-controller@0 {
interrupt-controller; interrupt-controller;
reg = <0 0x200>; reg = <0 0x200>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
valid-mask = <0xFFFFFFFF>; valid-mask = <0xffffffff>;
clear-mask = <0>; clear-mask = <0xffffffff>;
}; };
timer0: timer@200 { timer0: timer@200 {
......
...@@ -240,8 +240,8 @@ intc: interrupt-controller@0 { ...@@ -240,8 +240,8 @@ intc: interrupt-controller@0 {
reg = <0 0x200>; reg = <0 0x200>;
interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
#interrupt-cells = <1>; #interrupt-cells = <1>;
valid-mask = <0xFFFFFFFF>; valid-mask = <0xffffffff>;
clear-mask = <0>; clear-mask = <0xffffffff>;
}; };
timer0: timer@200 { timer0: timer@200 {
......
...@@ -215,7 +215,7 @@ video-codec@1c0e000 { ...@@ -215,7 +215,7 @@ video-codec@1c0e000 {
}; };
crypto: crypto-engine@1c15000 { crypto: crypto-engine@1c15000 {
compatible = "allwinner,sun4i-a10-crypto"; compatible = "allwinner,sun8i-a33-crypto";
reg = <0x01c15000 0x1000>; reg = <0x01c15000 0x1000>;
interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 80 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>; clocks = <&ccu CLK_BUS_SS>, <&ccu CLK_SS>;
......
...@@ -374,8 +374,8 @@ &reg_dldo2 { ...@@ -374,8 +374,8 @@ &reg_dldo2 {
}; };
&reg_dldo3 { &reg_dldo3 {
regulator-min-microvolt = <2800000>; regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2800000>; regulator-max-microvolt = <1800000>;
regulator-name = "vdd-csi"; regulator-name = "vdd-csi";
}; };
...@@ -498,7 +498,8 @@ &usb_otg { ...@@ -498,7 +498,8 @@ &usb_otg {
}; };
&usbphy { &usbphy {
usb0_id_det-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ usb0_id_det-gpios = <&pio 7 11 (GPIO_ACTIVE_HIGH | GPIO_PULL_UP)>; /* PH11 */
usb0_vbus_power-supply = <&usb_power_supply>;
usb0_vbus-supply = <&reg_drivevbus>; usb0_vbus-supply = <&reg_drivevbus>;
usb1_vbus-supply = <&reg_vmain>; usb1_vbus-supply = <&reg_vmain>;
usb2_vbus-supply = <&reg_vmain>; usb2_vbus-supply = <&reg_vmain>;
......
...@@ -1006,10 +1006,10 @@ emac: ethernet@1c30000 { ...@@ -1006,10 +1006,10 @@ emac: ethernet@1c30000 {
reg = <0x01c30000 0x104>; reg = <0x01c30000 0x104>;
interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "macirq"; interrupt-names = "macirq";
resets = <&ccu CLK_BUS_EMAC>; clocks = <&ccu CLK_BUS_EMAC>;
reset-names = "stmmaceth";
clocks = <&ccu RST_BUS_EMAC>;
clock-names = "stmmaceth"; clock-names = "stmmaceth";
resets = <&ccu RST_BUS_EMAC>;
reset-names = "stmmaceth";
status = "disabled"; status = "disabled";
mdio: mdio { mdio: mdio {
......
...@@ -181,6 +181,32 @@ nmi_intc: interrupt-controller@1c00030 { ...@@ -181,6 +181,32 @@ nmi_intc: interrupt-controller@1c00030 {
interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
}; };
spi0: spi@1c05000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c05000 0x1000>;
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI0>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi1: spi@1c06000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c06000 0x1000>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI1>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
csi0: csi@1c09000 { csi0: csi@1c09000 {
compatible = "allwinner,sun8i-r40-csi0", compatible = "allwinner,sun8i-r40-csi0",
"allwinner,sun7i-a20-csi0"; "allwinner,sun7i-a20-csi0";
...@@ -290,6 +316,29 @@ crypto: crypto@1c15000 { ...@@ -290,6 +316,29 @@ crypto: crypto@1c15000 {
resets = <&ccu RST_BUS_CE>; resets = <&ccu RST_BUS_CE>;
}; };
spi2: spi@1c17000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c17000 0x1000>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI2>, <&ccu CLK_SPI2>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI2>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
ahci: sata@1c18000 {
compatible = "allwinner,sun8i-r40-ahci";
reg = <0x01c18000 0x1000>;
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
resets = <&ccu RST_BUS_SATA>;
reset-names = "ahci";
status = "disabled";
};
ehci1: usb@1c19000 { ehci1: usb@1c19000 {
compatible = "allwinner,sun8i-r40-ehci", "generic-ehci"; compatible = "allwinner,sun8i-r40-ehci", "generic-ehci";
reg = <0x01c19000 0x100>; reg = <0x01c19000 0x100>;
...@@ -336,6 +385,19 @@ ohci2: usb@1c1c400 { ...@@ -336,6 +385,19 @@ ohci2: usb@1c1c400 {
status = "disabled"; status = "disabled";
}; };
spi3: spi@1c1f000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c1f000 0x1000>;
interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI3>, <&ccu CLK_SPI3>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI3>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
ccu: clock@1c20000 { ccu: clock@1c20000 {
compatible = "allwinner,sun8i-r40-ccu"; compatible = "allwinner,sun8i-r40-ccu";
reg = <0x01c20000 0x400>; reg = <0x01c20000 0x400>;
...@@ -653,69 +715,6 @@ i2c4: i2c@1c2c000 { ...@@ -653,69 +715,6 @@ i2c4: i2c@1c2c000 {
#size-cells = <0>; #size-cells = <0>;
}; };
spi0: spi@1c05000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c05000 0x1000>;
interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI0>, <&ccu CLK_SPI0>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI0>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi1: spi@1c06000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c06000 0x1000>;
interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI1>, <&ccu CLK_SPI1>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI1>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi2: spi@1c07000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c07000 0x1000>;
interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI2>, <&ccu CLK_SPI2>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI2>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
spi3: spi@1c0f000 {
compatible = "allwinner,sun8i-r40-spi",
"allwinner,sun8i-h3-spi";
reg = <0x01c0f000 0x1000>;
interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SPI3>, <&ccu CLK_SPI3>;
clock-names = "ahb", "mod";
resets = <&ccu RST_BUS_SPI3>;
status = "disabled";
#address-cells = <1>;
#size-cells = <0>;
};
ahci: sata@1c18000 {
compatible = "allwinner,sun8i-r40-ahci";
reg = <0x01c18000 0x1000>;
interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ccu CLK_BUS_SATA>, <&ccu CLK_SATA>;
resets = <&ccu RST_BUS_SATA>;
reset-names = "ahci";
status = "disabled";
};
gmac: ethernet@1c50000 { gmac: ethernet@1c50000 {
compatible = "allwinner,sun8i-r40-gmac"; compatible = "allwinner,sun8i-r40-gmac";
syscon = <&ccu>; syscon = <&ccu>;
......
...@@ -53,7 +53,7 @@ idle-states { ...@@ -53,7 +53,7 @@ idle-states {
* PSCI node is not added default, U-boot will add missing * PSCI node is not added default, U-boot will add missing
* parts if it determines to use PSCI. * parts if it determines to use PSCI.
*/ */
entry-method = "arm,psci"; entry-method = "psci";
CPU_PW20: cpu-pw20 { CPU_PW20: cpu-pw20 {
compatible = "arm,idle-state"; compatible = "arm,idle-state";
......
...@@ -108,7 +108,7 @@ CPU7: cpu@700 { ...@@ -108,7 +108,7 @@ CPU7: cpu@700 {
}; };
idle-states { idle-states {
entry-method = "arm,psci"; entry-method = "psci";
CORE_PD: core-pd { CORE_PD: core-pd {
compatible = "arm,idle-state"; compatible = "arm,idle-state";
entry-latency-us = <4000>; entry-latency-us = <4000>;
......
...@@ -345,7 +345,7 @@ static int sunxi_rsb_read(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr, ...@@ -345,7 +345,7 @@ static int sunxi_rsb_read(struct sunxi_rsb *rsb, u8 rtaddr, u8 addr,
if (ret) if (ret)
goto unlock; goto unlock;
*buf = readl(rsb->regs + RSB_DATA); *buf = readl(rsb->regs + RSB_DATA) & GENMASK(len * 8 - 1, 0);
unlock: unlock:
mutex_unlock(&rsb->lock); mutex_unlock(&rsb->lock);
......
...@@ -1266,6 +1266,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { ...@@ -1266,6 +1266,8 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
SYSC_QUIRK("gpu", 0x50000000, 0x14, -1, -1, 0x00010201, 0xffffffff, 0), SYSC_QUIRK("gpu", 0x50000000, 0x14, -1, -1, 0x00010201, 0xffffffff, 0),
SYSC_QUIRK("gpu", 0x50000000, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff, SYSC_QUIRK("gpu", 0x50000000, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff,
SYSC_MODULE_QUIRK_SGX), SYSC_MODULE_QUIRK_SGX),
SYSC_QUIRK("lcdc", 0, 0, 0x54, -1, 0x4f201000, 0xffffffff,
SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
SYSC_QUIRK("usb_otg_hs", 0, 0x400, 0x404, 0x408, 0x00000050, SYSC_QUIRK("usb_otg_hs", 0, 0x400, 0x404, 0x408, 0x00000050,
0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY), 0xffffffff, SYSC_QUIRK_SWSUP_SIDLE | SYSC_QUIRK_SWSUP_MSTANDBY),
SYSC_QUIRK("usb_otg_hs", 0, 0, 0x10, -1, 0x4ea2080d, 0xffffffff, SYSC_QUIRK("usb_otg_hs", 0, 0, 0x10, -1, 0x4ea2080d, 0xffffffff,
...@@ -1294,7 +1296,6 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = { ...@@ -1294,7 +1296,6 @@ static const struct sysc_revision_quirk sysc_revision_quirks[] = {
SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff, 0), SYSC_QUIRK("gpu", 0, 0xfe00, 0xfe10, -1, 0x40000000 , 0xffffffff, 0),
SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0), SYSC_QUIRK("hsi", 0, 0, 0x10, 0x14, 0x50043101, 0xffffffff, 0),
SYSC_QUIRK("iss", 0, 0, 0x10, -1, 0x40000101, 0xffffffff, 0), SYSC_QUIRK("iss", 0, 0, 0x10, -1, 0x40000101, 0xffffffff, 0),
SYSC_QUIRK("lcdc", 0, 0, 0x54, -1, 0x4f201000, 0xffffffff, 0),
SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44306302, 0xffffffff, 0), SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44306302, 0xffffffff, 0),
SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44307b02, 0xffffffff, 0), SYSC_QUIRK("mcasp", 0, 0, 0x4, -1, 0x44307b02, 0xffffffff, 0),
SYSC_QUIRK("mcbsp", 0, -1, 0x8c, -1, 0, 0, 0), SYSC_QUIRK("mcbsp", 0, -1, 0x8c, -1, 0, 0, 0),
......
...@@ -233,10 +233,6 @@ static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev) ...@@ -233,10 +233,6 @@ static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev)
goto err_allocate_irqs; goto err_allocate_irqs;
} }
err = register_dpio_irq_handlers(dpio_dev, desc.cpu);
if (err)
goto err_register_dpio_irq;
priv->io = dpaa2_io_create(&desc, dev); priv->io = dpaa2_io_create(&desc, dev);
if (!priv->io) { if (!priv->io) {
dev_err(dev, "dpaa2_io_create failed\n"); dev_err(dev, "dpaa2_io_create failed\n");
...@@ -244,6 +240,10 @@ static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev) ...@@ -244,6 +240,10 @@ static int dpaa2_dpio_probe(struct fsl_mc_device *dpio_dev)
goto err_dpaa2_io_create; goto err_dpaa2_io_create;
} }
err = register_dpio_irq_handlers(dpio_dev, desc.cpu);
if (err)
goto err_register_dpio_irq;
dev_info(dev, "probed\n"); dev_info(dev, "probed\n");
dev_dbg(dev, " receives_notifications = %d\n", dev_dbg(dev, " receives_notifications = %d\n",
desc.receives_notifications); desc.receives_notifications);
......
...@@ -59,7 +59,7 @@ static int __init exynos_chipid_early_init(void) ...@@ -59,7 +59,7 @@ static int __init exynos_chipid_early_init(void)
syscon = of_find_compatible_node(NULL, NULL, syscon = of_find_compatible_node(NULL, NULL,
"samsung,exynos4210-chipid"); "samsung,exynos4210-chipid");
if (!syscon) if (!syscon)
return ENODEV; return -ENODEV;
regmap = device_node_to_regmap(syscon); regmap = device_node_to_regmap(syscon);
of_node_put(syscon); of_node_put(syscon);
......
...@@ -139,6 +139,9 @@ static struct amdtee_session *find_session(struct amdtee_context_data *ctxdata, ...@@ -139,6 +139,9 @@ static struct amdtee_session *find_session(struct amdtee_context_data *ctxdata,
u32 index = get_session_index(session); u32 index = get_session_index(session);
struct amdtee_session *sess; struct amdtee_session *sess;
if (index >= TEE_NUM_SESSIONS)
return NULL;
list_for_each_entry(sess, &ctxdata->sess_list, list_node) list_for_each_entry(sess, &ctxdata->sess_list, list_node)
if (ta_handle == sess->ta_handle && if (ta_handle == sess->ta_handle &&
test_bit(index, sess->sess_mask)) test_bit(index, sess->sess_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