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

Pull ARM SoC fixes from Arnd Bergmann:
"Here are a couple of bug fixes, mostly for devicetree files

NXP i.MX:
- Use correct voltage on some i.MX8M board device trees to avoid
hardware damage
- Code fixes for a compiler warning and incorrect reference counting,
both harmless.
- Fix the i.MX8M SoC driver to correctly identify imx8mp
- Fix watchdog configuration in imx6ul-kontron device tree.

Broadcom:
- A small regression fix for the Raspberry-Pi firmware driver
- A Kconfig change to use the correct timer driver on Northstar
- A DT fix for the Luxul XWC-2000 machine
- Two more DT fixes for NSP SoCs

STmicroelectronics STI
- Revert one broken patch for L2 cache configuration

ARM Versatile Express:
- Fix a regression by reverting a broken DT cleanup

TEE drivers:
- MAINTAINERS: change tee mailing list"

* tag 'arm-fixes-5.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
Revert "ARM: sti: Implement dummy L2 cache's write_sec"
soc: imx8m: fix build warning
ARM: imx6: add missing put_device() call in imx6q_suspend_init()
ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram()
soc: imx8m: Correct i.MX8MP UID fuse offset
ARM: dts: imx6ul-kontron: Change WDOG_ANY signal from push-pull to open-drain
ARM: dts: imx6ul-kontron: Move watchdog from Kontron i.MX6UL/ULL board to SoM
arm64: dts: imx8mm-beacon: Fix voltages on LDO1 and LDO2
arm64: dts: imx8mn-ddr4-evk: correct ldo1/ldo2 voltage range
arm64: dts: imx8mm-evk: correct ldo1/ldo2 voltage range
ARM: dts: NSP: Correct FA2 mailbox node
ARM: bcm2835: Fix integer overflow in rpi_firmware_print_firmware_revision()
MAINTAINERS: change tee mailing list
ARM: dts: NSP: Disable PL330 by default, add dma-coherent property
ARM: bcm: Select ARM_TIMER_SP804 for ARCH_BCM_NSP
ARM: dts: BCM5301X: Add missing memory "device_type" for Luxul XWC-2000
arm: dts: vexpress: Move mcc node back into motherboard node

+3 -3
MAINTAINERS
··· 12695 12696 OP-TEE DRIVER 12697 M: Jens Wiklander <jens.wiklander@linaro.org> 12698 - L: tee-dev@lists.linaro.org 12699 S: Maintained 12700 F: drivers/tee/optee/ 12701 12702 OP-TEE RANDOM NUMBER GENERATOR (RNG) DRIVER 12703 M: Sumit Garg <sumit.garg@linaro.org> 12704 - L: tee-dev@lists.linaro.org 12705 S: Maintained 12706 F: drivers/char/hw_random/optee-rng.c 12707 ··· 16774 16775 TEE SUBSYSTEM 16776 M: Jens Wiklander <jens.wiklander@linaro.org> 16777 - L: tee-dev@lists.linaro.org 16778 S: Maintained 16779 F: Documentation/tee.txt 16780 F: drivers/tee/
··· 12695 12696 OP-TEE DRIVER 12697 M: Jens Wiklander <jens.wiklander@linaro.org> 12698 + L: op-tee@lists.trustedfirmware.org 12699 S: Maintained 12700 F: drivers/tee/optee/ 12701 12702 OP-TEE RANDOM NUMBER GENERATOR (RNG) DRIVER 12703 M: Sumit Garg <sumit.garg@linaro.org> 12704 + L: op-tee@lists.trustedfirmware.org 12705 S: Maintained 12706 F: drivers/char/hw_random/optee-rng.c 12707 ··· 16774 16775 TEE SUBSYSTEM 16776 M: Jens Wiklander <jens.wiklander@linaro.org> 16777 + L: op-tee@lists.trustedfirmware.org 16778 S: Maintained 16779 F: Documentation/tee.txt 16780 F: drivers/tee/
+6 -4
arch/arm/boot/dts/bcm-nsp.dtsi
··· 200 status = "disabled"; 201 }; 202 203 - dma@20000 { 204 compatible = "arm,pl330", "arm,primecell"; 205 reg = <0x20000 0x1000>; 206 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, ··· 215 clocks = <&iprocslow>; 216 clock-names = "apb_pclk"; 217 #dma-cells = <1>; 218 }; 219 220 sdio: sdhci@21000 { ··· 259 status = "disabled"; 260 }; 261 262 - mailbox: mailbox@25000 { 263 compatible = "brcm,iproc-fa2-mbox"; 264 - reg = <0x25000 0x445>; 265 - interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; 266 #mbox-cells = <1>; 267 brcm,rx-status-len = <32>; 268 brcm,use-bcm-hdr;
··· 200 status = "disabled"; 201 }; 202 203 + dma: dma@20000 { 204 compatible = "arm,pl330", "arm,primecell"; 205 reg = <0x20000 0x1000>; 206 interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>, ··· 215 clocks = <&iprocslow>; 216 clock-names = "apb_pclk"; 217 #dma-cells = <1>; 218 + dma-coherent; 219 + status = "disabled"; 220 }; 221 222 sdio: sdhci@21000 { ··· 257 status = "disabled"; 258 }; 259 260 + mailbox: mailbox@25c00 { 261 compatible = "brcm,iproc-fa2-mbox"; 262 + reg = <0x25c00 0x400>; 263 + interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; 264 #mbox-cells = <1>; 265 brcm,rx-status-len = <32>; 266 brcm,use-bcm-hdr;
+1
arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
··· 17 }; 18 19 memory { 20 reg = <0x00000000 0x08000000 21 0x88000000 0x18000000>; 22 };
··· 17 }; 18 19 memory { 20 + device_type = "memory"; 21 reg = <0x00000000 0x08000000 22 0x88000000 0x18000000>; 23 };
+4
arch/arm/boot/dts/bcm958522er.dts
··· 58 59 /* USB 3 support needed to be complete */ 60 61 &amac0 { 62 status = "okay"; 63 };
··· 58 59 /* USB 3 support needed to be complete */ 60 61 + &dma { 62 + status = "okay"; 63 + }; 64 + 65 &amac0 { 66 status = "okay"; 67 };
+4
arch/arm/boot/dts/bcm958525er.dts
··· 58 59 /* USB 3 support needed to be complete */ 60 61 &amac0 { 62 status = "okay"; 63 };
··· 58 59 /* USB 3 support needed to be complete */ 60 61 + &dma { 62 + status = "okay"; 63 + }; 64 + 65 &amac0 { 66 status = "okay"; 67 };
+4
arch/arm/boot/dts/bcm958525xmc.dts
··· 58 59 /* XHCI support needed to be complete */ 60 61 &amac0 { 62 status = "okay"; 63 };
··· 58 59 /* XHCI support needed to be complete */ 60 61 + &dma { 62 + status = "okay"; 63 + }; 64 + 65 &amac0 { 66 status = "okay"; 67 };
+4
arch/arm/boot/dts/bcm958622hr.dts
··· 58 59 /* USB 3 and SLIC support needed to be complete */ 60 61 &amac0 { 62 status = "okay"; 63 };
··· 58 59 /* USB 3 and SLIC support needed to be complete */ 60 61 + &dma { 62 + status = "okay"; 63 + }; 64 + 65 &amac0 { 66 status = "okay"; 67 };
+4
arch/arm/boot/dts/bcm958623hr.dts
··· 58 59 /* USB 3 and SLIC support needed to be complete */ 60 61 &amac0 { 62 status = "okay"; 63 };
··· 58 59 /* USB 3 and SLIC support needed to be complete */ 60 61 + &dma { 62 + status = "okay"; 63 + }; 64 + 65 &amac0 { 66 status = "okay"; 67 };
+4
arch/arm/boot/dts/bcm958625hr.dts
··· 69 status = "okay"; 70 }; 71 72 &amac0 { 73 status = "okay"; 74 };
··· 69 status = "okay"; 70 }; 71 72 + &dma { 73 + status = "okay"; 74 + }; 75 + 76 &amac0 { 77 status = "okay"; 78 };
+4
arch/arm/boot/dts/bcm958625k.dts
··· 48 }; 49 }; 50 51 &amac0 { 52 status = "okay"; 53 };
··· 48 }; 49 }; 50 51 + &dma { 52 + status = "okay"; 53 + }; 54 + 55 &amac0 { 56 status = "okay"; 57 };
-13
arch/arm/boot/dts/imx6ul-kontron-n6x1x-s.dtsi
··· 232 status = "okay"; 233 }; 234 235 - &wdog1 { 236 - pinctrl-names = "default"; 237 - pinctrl-0 = <&pinctrl_wdog>; 238 - fsl,ext-reset-output; 239 - status = "okay"; 240 - }; 241 - 242 &iomuxc { 243 pinctrl-0 = <&pinctrl_reset_out &pinctrl_gpio>; 244 ··· 400 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170f9 401 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170f9 402 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170f9 403 - >; 404 - }; 405 - 406 - pinctrl_wdog: wdoggrp { 407 - fsl,pins = < 408 - MX6UL_PAD_GPIO1_IO09__WDOG1_WDOG_ANY 0x30b0 409 >; 410 }; 411 };
··· 232 status = "okay"; 233 }; 234 235 &iomuxc { 236 pinctrl-0 = <&pinctrl_reset_out &pinctrl_gpio>; 237 ··· 407 MX6UL_PAD_NAND_DATA01__USDHC2_DATA1 0x170f9 408 MX6UL_PAD_NAND_DATA02__USDHC2_DATA2 0x170f9 409 MX6UL_PAD_NAND_DATA03__USDHC2_DATA3 0x170f9 410 >; 411 }; 412 };
+13
arch/arm/boot/dts/imx6ul-kontron-n6x1x-som-common.dtsi
··· 57 status = "okay"; 58 }; 59 60 &iomuxc { 61 pinctrl-names = "default"; 62 pinctrl-0 = <&pinctrl_reset_out>; ··· 111 pinctrl_reset_out: rstoutgrp { 112 fsl,pins = < 113 MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x1b0b0 114 >; 115 }; 116 };
··· 57 status = "okay"; 58 }; 59 60 + &wdog1 { 61 + pinctrl-names = "default"; 62 + pinctrl-0 = <&pinctrl_wdog>; 63 + fsl,ext-reset-output; 64 + status = "okay"; 65 + }; 66 + 67 &iomuxc { 68 pinctrl-names = "default"; 69 pinctrl-0 = <&pinctrl_reset_out>; ··· 104 pinctrl_reset_out: rstoutgrp { 105 fsl,pins = < 106 MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 0x1b0b0 107 + >; 108 + }; 109 + 110 + pinctrl_wdog: wdoggrp { 111 + fsl,pins = < 112 + MX6UL_PAD_GPIO1_IO09__WDOG1_WDOG_ANY 0x18b0 113 >; 114 }; 115 };
+73 -73
arch/arm/boot/dts/vexpress-v2m-rs1.dtsi
··· 100 }; 101 }; 102 103 - mcc { 104 - compatible = "arm,vexpress,config-bus"; 105 - arm,vexpress,config-bridge = <&v2m_sysreg>; 106 - 107 - oscclk0 { 108 - /* MCC static memory clock */ 109 - compatible = "arm,vexpress-osc"; 110 - arm,vexpress-sysreg,func = <1 0>; 111 - freq-range = <25000000 60000000>; 112 - #clock-cells = <0>; 113 - clock-output-names = "v2m:oscclk0"; 114 - }; 115 - 116 - v2m_oscclk1: oscclk1 { 117 - /* CLCD clock */ 118 - compatible = "arm,vexpress-osc"; 119 - arm,vexpress-sysreg,func = <1 1>; 120 - freq-range = <23750000 65000000>; 121 - #clock-cells = <0>; 122 - clock-output-names = "v2m:oscclk1"; 123 - }; 124 - 125 - v2m_oscclk2: oscclk2 { 126 - /* IO FPGA peripheral clock */ 127 - compatible = "arm,vexpress-osc"; 128 - arm,vexpress-sysreg,func = <1 2>; 129 - freq-range = <24000000 24000000>; 130 - #clock-cells = <0>; 131 - clock-output-names = "v2m:oscclk2"; 132 - }; 133 - 134 - volt-vio { 135 - /* Logic level voltage */ 136 - compatible = "arm,vexpress-volt"; 137 - arm,vexpress-sysreg,func = <2 0>; 138 - regulator-name = "VIO"; 139 - regulator-always-on; 140 - label = "VIO"; 141 - }; 142 - 143 - temp-mcc { 144 - /* MCC internal operating temperature */ 145 - compatible = "arm,vexpress-temp"; 146 - arm,vexpress-sysreg,func = <4 0>; 147 - label = "MCC"; 148 - }; 149 - 150 - reset { 151 - compatible = "arm,vexpress-reset"; 152 - arm,vexpress-sysreg,func = <5 0>; 153 - }; 154 - 155 - muxfpga { 156 - compatible = "arm,vexpress-muxfpga"; 157 - arm,vexpress-sysreg,func = <7 0>; 158 - }; 159 - 160 - shutdown { 161 - compatible = "arm,vexpress-shutdown"; 162 - arm,vexpress-sysreg,func = <8 0>; 163 - }; 164 - 165 - reboot { 166 - compatible = "arm,vexpress-reboot"; 167 - arm,vexpress-sysreg,func = <9 0>; 168 - }; 169 - 170 - dvimode { 171 - compatible = "arm,vexpress-dvimode"; 172 - arm,vexpress-sysreg,func = <11 0>; 173 - }; 174 - }; 175 - 176 bus@8000000 { 177 motherboard-bus { 178 model = "V2M-P1"; ··· 360 remote-endpoint = <&dvi_bridge_in>; 361 arm,pl11x,tft-r0g0b0-pads = <0 8 16>; 362 }; 363 }; 364 }; 365 };
··· 100 }; 101 }; 102 103 bus@8000000 { 104 motherboard-bus { 105 model = "V2M-P1"; ··· 433 remote-endpoint = <&dvi_bridge_in>; 434 arm,pl11x,tft-r0g0b0-pads = <0 8 16>; 435 }; 436 + }; 437 + }; 438 + 439 + mcc { 440 + compatible = "arm,vexpress,config-bus"; 441 + arm,vexpress,config-bridge = <&v2m_sysreg>; 442 + 443 + oscclk0 { 444 + /* MCC static memory clock */ 445 + compatible = "arm,vexpress-osc"; 446 + arm,vexpress-sysreg,func = <1 0>; 447 + freq-range = <25000000 60000000>; 448 + #clock-cells = <0>; 449 + clock-output-names = "v2m:oscclk0"; 450 + }; 451 + 452 + v2m_oscclk1: oscclk1 { 453 + /* CLCD clock */ 454 + compatible = "arm,vexpress-osc"; 455 + arm,vexpress-sysreg,func = <1 1>; 456 + freq-range = <23750000 65000000>; 457 + #clock-cells = <0>; 458 + clock-output-names = "v2m:oscclk1"; 459 + }; 460 + 461 + v2m_oscclk2: oscclk2 { 462 + /* IO FPGA peripheral clock */ 463 + compatible = "arm,vexpress-osc"; 464 + arm,vexpress-sysreg,func = <1 2>; 465 + freq-range = <24000000 24000000>; 466 + #clock-cells = <0>; 467 + clock-output-names = "v2m:oscclk2"; 468 + }; 469 + 470 + volt-vio { 471 + /* Logic level voltage */ 472 + compatible = "arm,vexpress-volt"; 473 + arm,vexpress-sysreg,func = <2 0>; 474 + regulator-name = "VIO"; 475 + regulator-always-on; 476 + label = "VIO"; 477 + }; 478 + 479 + temp-mcc { 480 + /* MCC internal operating temperature */ 481 + compatible = "arm,vexpress-temp"; 482 + arm,vexpress-sysreg,func = <4 0>; 483 + label = "MCC"; 484 + }; 485 + 486 + reset { 487 + compatible = "arm,vexpress-reset"; 488 + arm,vexpress-sysreg,func = <5 0>; 489 + }; 490 + 491 + muxfpga { 492 + compatible = "arm,vexpress-muxfpga"; 493 + arm,vexpress-sysreg,func = <7 0>; 494 + }; 495 + 496 + shutdown { 497 + compatible = "arm,vexpress-shutdown"; 498 + arm,vexpress-sysreg,func = <8 0>; 499 + }; 500 + 501 + reboot { 502 + compatible = "arm,vexpress-reboot"; 503 + arm,vexpress-sysreg,func = <9 0>; 504 + }; 505 + 506 + dvimode { 507 + compatible = "arm,vexpress-dvimode"; 508 + arm,vexpress-sysreg,func = <11 0>; 509 }; 510 }; 511 };
+1
arch/arm/mach-bcm/Kconfig
··· 53 select ARM_ERRATA_754322 54 select ARM_ERRATA_775420 55 select ARM_ERRATA_764369 if SMP 56 select THERMAL 57 select THERMAL_OF 58 help
··· 53 select ARM_ERRATA_754322 54 select ARM_ERRATA_775420 55 select ARM_ERRATA_764369 if SMP 56 + select ARM_TIMER_SP804 57 select THERMAL 58 select THERMAL_OF 59 help
+4 -2
arch/arm/mach-imx/pm-imx5.c
··· 295 if (!ocram_pool) { 296 pr_warn("%s: ocram pool unavailable!\n", __func__); 297 ret = -ENODEV; 298 - goto put_node; 299 } 300 301 ocram_base = gen_pool_alloc(ocram_pool, size); 302 if (!ocram_base) { 303 pr_warn("%s: unable to alloc ocram!\n", __func__); 304 ret = -ENOMEM; 305 - goto put_node; 306 } 307 308 phys = gen_pool_virt_to_phys(ocram_pool, ocram_base); ··· 312 if (virt_out) 313 *virt_out = virt; 314 315 put_node: 316 of_node_put(node); 317
··· 295 if (!ocram_pool) { 296 pr_warn("%s: ocram pool unavailable!\n", __func__); 297 ret = -ENODEV; 298 + goto put_device; 299 } 300 301 ocram_base = gen_pool_alloc(ocram_pool, size); 302 if (!ocram_base) { 303 pr_warn("%s: unable to alloc ocram!\n", __func__); 304 ret = -ENOMEM; 305 + goto put_device; 306 } 307 308 phys = gen_pool_virt_to_phys(ocram_pool, ocram_base); ··· 312 if (virt_out) 313 *virt_out = virt; 314 315 + put_device: 316 + put_device(&pdev->dev); 317 put_node: 318 of_node_put(node); 319
+6 -4
arch/arm/mach-imx/pm-imx6.c
··· 493 if (!ocram_pool) { 494 pr_warn("%s: ocram pool unavailable!\n", __func__); 495 ret = -ENODEV; 496 - goto put_node; 497 } 498 499 ocram_base = gen_pool_alloc(ocram_pool, MX6Q_SUSPEND_OCRAM_SIZE); 500 if (!ocram_base) { 501 pr_warn("%s: unable to alloc ocram!\n", __func__); 502 ret = -ENOMEM; 503 - goto put_node; 504 } 505 506 ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base); ··· 523 ret = imx6_pm_get_base(&pm_info->mmdc_base, socdata->mmdc_compat); 524 if (ret) { 525 pr_warn("%s: failed to get mmdc base %d!\n", __func__, ret); 526 - goto put_node; 527 } 528 529 ret = imx6_pm_get_base(&pm_info->src_base, socdata->src_compat); ··· 570 &imx6_suspend, 571 MX6Q_SUSPEND_OCRAM_SIZE - sizeof(*pm_info)); 572 573 - goto put_node; 574 575 pl310_cache_map_failed: 576 iounmap(pm_info->gpc_base.vbase); ··· 580 iounmap(pm_info->src_base.vbase); 581 src_map_failed: 582 iounmap(pm_info->mmdc_base.vbase); 583 put_node: 584 of_node_put(node); 585
··· 493 if (!ocram_pool) { 494 pr_warn("%s: ocram pool unavailable!\n", __func__); 495 ret = -ENODEV; 496 + goto put_device; 497 } 498 499 ocram_base = gen_pool_alloc(ocram_pool, MX6Q_SUSPEND_OCRAM_SIZE); 500 if (!ocram_base) { 501 pr_warn("%s: unable to alloc ocram!\n", __func__); 502 ret = -ENOMEM; 503 + goto put_device; 504 } 505 506 ocram_pbase = gen_pool_virt_to_phys(ocram_pool, ocram_base); ··· 523 ret = imx6_pm_get_base(&pm_info->mmdc_base, socdata->mmdc_compat); 524 if (ret) { 525 pr_warn("%s: failed to get mmdc base %d!\n", __func__, ret); 526 + goto put_device; 527 } 528 529 ret = imx6_pm_get_base(&pm_info->src_base, socdata->src_compat); ··· 570 &imx6_suspend, 571 MX6Q_SUSPEND_OCRAM_SIZE - sizeof(*pm_info)); 572 573 + goto put_device; 574 575 pl310_cache_map_failed: 576 iounmap(pm_info->gpc_base.vbase); ··· 580 iounmap(pm_info->src_base.vbase); 581 src_map_failed: 582 iounmap(pm_info->mmdc_base.vbase); 583 + put_device: 584 + put_device(&pdev->dev); 585 put_node: 586 of_node_put(node); 587
-9
arch/arm/mach-sti/board-dt.c
··· 20 NULL 21 }; 22 23 - static void sti_l2_write_sec(unsigned long val, unsigned reg) 24 - { 25 - /* 26 - * We can't write to secure registers as we are in non-secure 27 - * mode, until we have some SMI service available. 28 - */ 29 - } 30 - 31 DT_MACHINE_START(STM, "STi SoC with Flattened Device Tree") 32 .dt_compat = stih41x_dt_match, 33 .l2c_aux_val = L2C_AUX_CTRL_SHARED_OVERRIDE | ··· 28 L2C_AUX_CTRL_WAY_SIZE(4), 29 .l2c_aux_mask = 0xc0000fff, 30 .smp = smp_ops(sti_smp_ops), 31 - .l2c_write_sec = sti_l2_write_sec, 32 MACHINE_END
··· 20 NULL 21 }; 22 23 DT_MACHINE_START(STM, "STi SoC with Flattened Device Tree") 24 .dt_compat = stih41x_dt_match, 25 .l2c_aux_val = L2C_AUX_CTRL_SHARED_OVERRIDE | ··· 36 L2C_AUX_CTRL_WAY_SIZE(4), 37 .l2c_aux_mask = 0xc0000fff, 38 .smp = smp_ops(sti_smp_ops), 39 MACHINE_END
+2 -2
arch/arm64/boot/dts/freescale/imx8mm-beacon-som.dtsi
··· 136 137 ldo1_reg: LDO1 { 138 regulator-name = "LDO1"; 139 - regulator-min-microvolt = <3000000>; 140 regulator-max-microvolt = <3300000>; 141 regulator-boot-on; 142 regulator-always-on; ··· 144 145 ldo2_reg: LDO2 { 146 regulator-name = "LDO2"; 147 - regulator-min-microvolt = <900000>; 148 regulator-max-microvolt = <900000>; 149 regulator-boot-on; 150 regulator-always-on;
··· 136 137 ldo1_reg: LDO1 { 138 regulator-name = "LDO1"; 139 + regulator-min-microvolt = <1600000>; 140 regulator-max-microvolt = <3300000>; 141 regulator-boot-on; 142 regulator-always-on; ··· 144 145 ldo2_reg: LDO2 { 146 regulator-name = "LDO2"; 147 + regulator-min-microvolt = <800000>; 148 regulator-max-microvolt = <900000>; 149 regulator-boot-on; 150 regulator-always-on;
+2 -2
arch/arm64/boot/dts/freescale/imx8mm-evk.dts
··· 208 209 ldo1_reg: LDO1 { 210 regulator-name = "LDO1"; 211 - regulator-min-microvolt = <3000000>; 212 regulator-max-microvolt = <3300000>; 213 regulator-boot-on; 214 regulator-always-on; ··· 216 217 ldo2_reg: LDO2 { 218 regulator-name = "LDO2"; 219 - regulator-min-microvolt = <900000>; 220 regulator-max-microvolt = <900000>; 221 regulator-boot-on; 222 regulator-always-on;
··· 208 209 ldo1_reg: LDO1 { 210 regulator-name = "LDO1"; 211 + regulator-min-microvolt = <1600000>; 212 regulator-max-microvolt = <3300000>; 213 regulator-boot-on; 214 regulator-always-on; ··· 216 217 ldo2_reg: LDO2 { 218 regulator-name = "LDO2"; 219 + regulator-min-microvolt = <800000>; 220 regulator-max-microvolt = <900000>; 221 regulator-boot-on; 222 regulator-always-on;
+2 -2
arch/arm64/boot/dts/freescale/imx8mn-ddr4-evk.dts
··· 113 114 ldo1_reg: LDO1 { 115 regulator-name = "LDO1"; 116 - regulator-min-microvolt = <3000000>; 117 regulator-max-microvolt = <3300000>; 118 regulator-boot-on; 119 regulator-always-on; ··· 121 122 ldo2_reg: LDO2 { 123 regulator-name = "LDO2"; 124 - regulator-min-microvolt = <900000>; 125 regulator-max-microvolt = <900000>; 126 regulator-boot-on; 127 regulator-always-on;
··· 113 114 ldo1_reg: LDO1 { 115 regulator-name = "LDO1"; 116 + regulator-min-microvolt = <1600000>; 117 regulator-max-microvolt = <3300000>; 118 regulator-boot-on; 119 regulator-always-on; ··· 121 122 ldo2_reg: LDO2 { 123 regulator-name = "LDO2"; 124 + regulator-min-microvolt = <800000>; 125 regulator-max-microvolt = <900000>; 126 regulator-boot-on; 127 regulator-always-on;
+4 -1
drivers/firmware/raspberrypi.c
··· 181 static void 182 rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) 183 { 184 u32 packet; 185 int ret = rpi_firmware_property(fw, 186 RPI_FIRMWARE_GET_FIRMWARE_REVISION, ··· 190 if (ret) 191 return; 192 193 - dev_info(fw->cl.dev, "Attached to firmware from %ptT\n", &packet); 194 } 195 196 static void
··· 181 static void 182 rpi_firmware_print_firmware_revision(struct rpi_firmware *fw) 183 { 184 + time64_t date_and_time; 185 u32 packet; 186 int ret = rpi_firmware_property(fw, 187 RPI_FIRMWARE_GET_FIRMWARE_REVISION, ··· 189 if (ret) 190 return; 191 192 + /* This is not compatible with y2038 */ 193 + date_and_time = packet; 194 + dev_info(fw->cl.dev, "Attached to firmware from %ptT\n", &date_and_time); 195 } 196 197 static void
+7 -3
drivers/soc/imx/soc-imx8m.c
··· 22 #define OCOTP_UID_LOW 0x410 23 #define OCOTP_UID_HIGH 0x420 24 25 /* Same as ANADIG_DIGPROG_IMX7D */ 26 #define ANADIG_DIGPROG_IMX8MM 0x800 27 ··· 89 { 90 void __iomem *ocotp_base; 91 struct device_node *np; 92 93 np = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-ocotp"); 94 if (!np) ··· 99 ocotp_base = of_iomap(np, 0); 100 WARN_ON(!ocotp_base); 101 102 - soc_uid = readl_relaxed(ocotp_base + OCOTP_UID_HIGH); 103 soc_uid <<= 32; 104 - soc_uid |= readl_relaxed(ocotp_base + OCOTP_UID_LOW); 105 106 iounmap(ocotp_base); 107 of_node_put(np); ··· 150 .soc_revision = imx8mm_soc_revision, 151 }; 152 153 - static const struct of_device_id imx8_soc_match[] = { 154 { .compatible = "fsl,imx8mq", .data = &imx8mq_soc_data, }, 155 { .compatible = "fsl,imx8mm", .data = &imx8mm_soc_data, }, 156 { .compatible = "fsl,imx8mn", .data = &imx8mn_soc_data, },
··· 22 #define OCOTP_UID_LOW 0x410 23 #define OCOTP_UID_HIGH 0x420 24 25 + #define IMX8MP_OCOTP_UID_OFFSET 0x10 26 + 27 /* Same as ANADIG_DIGPROG_IMX7D */ 28 #define ANADIG_DIGPROG_IMX8MM 0x800 29 ··· 87 { 88 void __iomem *ocotp_base; 89 struct device_node *np; 90 + u32 offset = of_machine_is_compatible("fsl,imx8mp") ? 91 + IMX8MP_OCOTP_UID_OFFSET : 0; 92 93 np = of_find_compatible_node(NULL, NULL, "fsl,imx8mm-ocotp"); 94 if (!np) ··· 95 ocotp_base = of_iomap(np, 0); 96 WARN_ON(!ocotp_base); 97 98 + soc_uid = readl_relaxed(ocotp_base + OCOTP_UID_HIGH + offset); 99 soc_uid <<= 32; 100 + soc_uid |= readl_relaxed(ocotp_base + OCOTP_UID_LOW + offset); 101 102 iounmap(ocotp_base); 103 of_node_put(np); ··· 146 .soc_revision = imx8mm_soc_revision, 147 }; 148 149 + static __maybe_unused const struct of_device_id imx8_soc_match[] = { 150 { .compatible = "fsl,imx8mq", .data = &imx8mq_soc_data, }, 151 { .compatible = "fsl,imx8mm", .data = &imx8mm_soc_data, }, 152 { .compatible = "fsl,imx8mn", .data = &imx8mn_soc_data, },