Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

Pull ARM SoC fixes from Olof Johansson:
"I didn't get a batch in this weekend, so here's what we queued up last
week and today.

- A couple of defconfigs add back debugfs -- it used to be implicitly
enabled through CONFIG_TRACING, but 0e4a459f56c32d3e ("tracing:
Remove unnecessary DEBUG_FS dependency") removed that.

- The rest are mostly minor fixlets of the usual kind; some DT
tweaks, a headerfile refactor that needs a build fix now, etc"

* tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (30 commits)
ARM: bcm: Add missing sentinel to bcm2711_compat[]
ARM: shmobile: defconfig: Restore debugfs support
bus: ti-sysc: Fix missing reset delay handling
ARM: imx: Fix boot crash if ocotp is not found
ARM: imx_v6_v7_defconfig: Explicitly restore CONFIG_DEBUG_FS
ARM: dts: imx6ul-evk: Fix peripheral regulator
arm64: dts: ls1028a: fix reboot node
ARM: mmp: include the correct cputype.h
ARM: dts: am437x-gp/epos-evm: fix panel compatible
arm64: dts: ls1028a: fix typo in TMU calibration data
ARM: imx: Correct ocotp id for serial number support of i.MX6ULL/ULZ SoCs
ARM: dts: bcm283x: Fix critical trip point
ARM: omap2plus_defconfig: Add back DEBUG_FS
ARM: omap2plus_defconfig: enable NET_SWITCHDEV
ARM: dts: am335x-sancloud-bbe: fix phy mode
bus: ti-sysc: Fix missing force mstandby quirk handling
reset: Do not register resource data for missing resets
reset: Fix {of,devm}_reset_control_array_get kerneldoc return types
reset: brcmstb: Remove resource checks
dt-bindings: reset: Fix brcmstb-reset example
...

+78 -45
+1
.mailmap
··· 152 152 Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch> 153 153 Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org> 154 154 Li Yang <leoyang.li@nxp.com> <leoli@freescale.com> 155 + Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com> 155 156 Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com> 156 157 Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com> 157 158 Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
+1 -1
Documentation/devicetree/bindings/reset/brcm,brcmstb-reset.txt
··· 22 22 }; 23 23 24 24 &ethernet_switch { 25 - resets = <&reset>; 25 + resets = <&reset 26>; 26 26 reset-names = "switch"; 27 27 };
+2 -1
MAINTAINERS
··· 2272 2272 F: drivers/*/*s5pv210* 2273 2273 F: drivers/memory/samsung/ 2274 2274 F: drivers/soc/samsung/ 2275 + F: drivers/tty/serial/samsung* 2275 2276 F: include/linux/soc/samsung/ 2276 2277 F: Documentation/arm/samsung/ 2277 2278 F: Documentation/devicetree/bindings/arm/samsung/ ··· 5001 5000 F: include/linux/dma-noncoherent.h 5002 5001 5003 5002 DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422 5004 - M: Lukasz Luba <l.luba@partner.samsung.com> 5003 + M: Lukasz Luba <lukasz.luba@arm.com> 5005 5004 L: linux-pm@vger.kernel.org 5006 5005 L: linux-samsung-soc@vger.kernel.org 5007 5006 S: Maintained
+1 -1
arch/arm/boot/dts/am335x-sancloud-bbe.dts
··· 108 108 109 109 &cpsw_emac0 { 110 110 phy-handle = <&ethphy0>; 111 - phy-mode = "rgmii-txid"; 111 + phy-mode = "rgmii-id"; 112 112 }; 113 113 114 114 &i2c0 {
+1 -1
arch/arm/boot/dts/am437x-gp-evm.dts
··· 86 86 }; 87 87 88 88 lcd0: display { 89 - compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; 89 + compatible = "osddisplays,osd070t1718-19ts", "panel-dpi"; 90 90 label = "lcd"; 91 91 92 92 backlight = <&lcd_bl>;
+1 -1
arch/arm/boot/dts/am43x-epos-evm.dts
··· 42 42 }; 43 43 44 44 lcd0: display { 45 - compatible = "osddisplays,osd057T0559-34ts", "panel-dpi"; 45 + compatible = "osddisplays,osd070t1718-19ts", "panel-dpi"; 46 46 label = "lcd"; 47 47 48 48 backlight = <&lcd_bl>;
+2 -2
arch/arm/boot/dts/bcm-cygnus.dtsi
··· 174 174 mdio: mdio@18002000 { 175 175 compatible = "brcm,iproc-mdio"; 176 176 reg = <0x18002000 0x8>; 177 - #size-cells = <1>; 178 - #address-cells = <0>; 177 + #size-cells = <0>; 178 + #address-cells = <1>; 179 179 status = "disabled"; 180 180 181 181 gphy0: ethernet-phy@0 {
+1 -1
arch/arm/boot/dts/bcm2711.dtsi
··· 43 43 <0x7c000000 0x0 0xfc000000 0x02000000>, 44 44 <0x40000000 0x0 0xff800000 0x00800000>; 45 45 /* Emulate a contiguous 30-bit address range for DMA */ 46 - dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>; 46 + dma-ranges = <0xc0000000 0x0 0x00000000 0x40000000>; 47 47 48 48 /* 49 49 * This node is the provider for the enable-method for
+1 -1
arch/arm/boot/dts/bcm283x.dtsi
··· 37 37 38 38 trips { 39 39 cpu-crit { 40 - temperature = <80000>; 40 + temperature = <90000>; 41 41 hysteresis = <0>; 42 42 type = "critical"; 43 43 };
+2 -2
arch/arm/boot/dts/bcm5301x.dtsi
··· 353 353 mdio: mdio@18003000 { 354 354 compatible = "brcm,iproc-mdio"; 355 355 reg = <0x18003000 0x8>; 356 - #size-cells = <1>; 357 - #address-cells = <0>; 356 + #size-cells = <0>; 357 + #address-cells = <1>; 358 358 }; 359 359 360 360 mdio-bus-mux@18003000 {
-5
arch/arm/boot/dts/e60k02.dtsi
··· 265 265 regulator-name = "LDORTC1"; 266 266 regulator-boot-on; 267 267 }; 268 - 269 - ldortc2_reg: LDORTC2 { 270 - regulator-name = "LDORTC2"; 271 - regulator-boot-on; 272 - }; 273 268 }; 274 269 }; 275 270 };
+21 -7
arch/arm/boot/dts/imx6ul-14x14-evk.dtsi
··· 30 30 enable-active-high; 31 31 }; 32 32 33 - reg_sensors: regulator-sensors { 33 + reg_peri_3v3: regulator-peri-3v3 { 34 34 compatible = "regulator-fixed"; 35 35 pinctrl-names = "default"; 36 - pinctrl-0 = <&pinctrl_sensors_reg>; 37 - regulator-name = "sensors-supply"; 36 + pinctrl-0 = <&pinctrl_peri_3v3>; 37 + regulator-name = "VPERI_3V3"; 38 38 regulator-min-microvolt = <3300000>; 39 39 regulator-max-microvolt = <3300000>; 40 40 gpio = <&gpio5 2 GPIO_ACTIVE_LOW>; 41 + /* 42 + * If you want to want to make this dynamic please 43 + * check schematics and test all affected peripherals: 44 + * 45 + * - sensors 46 + * - ethernet phy 47 + * - can 48 + * - bluetooth 49 + * - wm8960 audio codec 50 + * - ov5640 camera 51 + */ 52 + regulator-always-on; 41 53 }; 42 54 43 55 reg_can_3v3: regulator-can-3v3 { ··· 152 140 pinctrl-0 = <&pinctrl_enet1>; 153 141 phy-mode = "rmii"; 154 142 phy-handle = <&ethphy0>; 143 + phy-supply = <&reg_peri_3v3>; 155 144 status = "okay"; 156 145 }; 157 146 ··· 161 148 pinctrl-0 = <&pinctrl_enet2>; 162 149 phy-mode = "rmii"; 163 150 phy-handle = <&ethphy1>; 151 + phy-supply = <&reg_peri_3v3>; 164 152 status = "okay"; 165 153 166 154 mdio { ··· 207 193 magnetometer@e { 208 194 compatible = "fsl,mag3110"; 209 195 reg = <0x0e>; 210 - vdd-supply = <&reg_sensors>; 211 - vddio-supply = <&reg_sensors>; 196 + vdd-supply = <&reg_peri_3v3>; 197 + vddio-supply = <&reg_peri_3v3>; 212 198 }; 213 199 }; 214 200 ··· 241 227 flash0: n25q256a@0 { 242 228 #address-cells = <1>; 243 229 #size-cells = <1>; 244 - compatible = "micron,n25q256a"; 230 + compatible = "micron,n25q256a", "jedec,spi-nor"; 245 231 spi-max-frequency = <29000000>; 246 232 spi-rx-bus-width = <4>; 247 233 spi-tx-bus-width = <4>; ··· 476 462 >; 477 463 }; 478 464 479 - pinctrl_sensors_reg: sensorsreggrp { 465 + pinctrl_peri_3v3: peri3v3grp { 480 466 fsl,pins = < 481 467 MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0 482 468 >;
+1
arch/arm/configs/exynos_defconfig
··· 350 350 CONFIG_DYNAMIC_DEBUG=y 351 351 CONFIG_DEBUG_INFO=y 352 352 CONFIG_MAGIC_SYSRQ=y 353 + CONFIG_DEBUG_FS=y 353 354 CONFIG_DEBUG_KERNEL=y 354 355 CONFIG_SOFTLOCKUP_DETECTOR=y 355 356 # CONFIG_DETECT_HUNG_TASK is not set
+1
arch/arm/configs/imx_v6_v7_defconfig
··· 462 462 CONFIG_FONT_8x16=y 463 463 CONFIG_PRINTK_TIME=y 464 464 CONFIG_MAGIC_SYSRQ=y 465 + CONFIG_DEBUG_FS=y 465 466 # CONFIG_SCHED_DEBUG is not set 466 467 CONFIG_PROVE_LOCKING=y 467 468 # CONFIG_DEBUG_BUGVERBOSE is not set
+3 -1
arch/arm/configs/omap2plus_defconfig
··· 92 92 CONFIG_IP_PNP_RARP=y 93 93 CONFIG_NETFILTER=y 94 94 CONFIG_PHONET=m 95 + CONFIG_NET_SWITCHDEV=y 95 96 CONFIG_CAN=m 96 97 CONFIG_CAN_C_CAN=m 97 98 CONFIG_CAN_C_CAN_PLATFORM=m ··· 182 181 # CONFIG_NET_VENDOR_STMICRO is not set 183 182 CONFIG_TI_DAVINCI_EMAC=y 184 183 CONFIG_TI_CPSW=y 184 + CONFIG_TI_CPSW_SWITCHDEV=y 185 185 CONFIG_TI_CPTS=y 186 186 # CONFIG_NET_VENDOR_VIA is not set 187 187 # CONFIG_NET_VENDOR_WIZNET is not set ··· 556 554 CONFIG_DEBUG_INFO_SPLIT=y 557 555 CONFIG_DEBUG_INFO_DWARF4=y 558 556 CONFIG_MAGIC_SYSRQ=y 557 + CONFIG_DEBUG_FS=y 559 558 CONFIG_SCHEDSTATS=y 560 559 # CONFIG_DEBUG_BUGVERBOSE is not set 561 - CONFIG_TI_CPSW_SWITCHDEV=y
+1
arch/arm/configs/shmobile_defconfig
··· 212 212 CONFIG_CMA_SIZE_MBYTES=64 213 213 CONFIG_PRINTK_TIME=y 214 214 # CONFIG_ENABLE_MUST_CHECK is not set 215 + CONFIG_DEBUG_FS=y 215 216 CONFIG_DEBUG_KERNEL=y
+1
arch/arm/mach-bcm/bcm2711.c
··· 13 13 #ifdef CONFIG_ARCH_MULTI_V7 14 14 "brcm,bcm2711", 15 15 #endif 16 + NULL 16 17 }; 17 18 18 19 DT_MACHINE_START(BCM2711, "BCM2711")
+5 -3
arch/arm/mach-imx/cpu.c
··· 84 84 const char *ocotp_compat = NULL; 85 85 struct soc_device *soc_dev; 86 86 struct device_node *root; 87 - struct regmap *ocotp; 87 + struct regmap *ocotp = NULL; 88 88 const char *soc_id; 89 89 u64 soc_uid = 0; 90 90 u32 val; ··· 148 148 soc_id = "i.MX6UL"; 149 149 break; 150 150 case MXC_CPU_IMX6ULL: 151 - ocotp_compat = "fsl,imx6ul-ocotp"; 151 + ocotp_compat = "fsl,imx6ull-ocotp"; 152 152 soc_id = "i.MX6ULL"; 153 153 break; 154 154 case MXC_CPU_IMX6ULZ: 155 - ocotp_compat = "fsl,imx6ul-ocotp"; 155 + ocotp_compat = "fsl,imx6ull-ocotp"; 156 156 soc_id = "i.MX6ULZ"; 157 157 break; 158 158 case MXC_CPU_IMX6SLL: ··· 175 175 ocotp = syscon_regmap_lookup_by_compatible(ocotp_compat); 176 176 if (IS_ERR(ocotp)) 177 177 pr_err("%s: failed to find %s regmap!\n", __func__, ocotp_compat); 178 + } 178 179 180 + if (!IS_ERR_OR_NULL(ocotp)) { 179 181 regmap_read(ocotp, OCOTP_UID_H, &val); 180 182 soc_uid = val; 181 183 regmap_read(ocotp, OCOTP_UID_L, &val);
+1 -1
arch/arm/mach-mmp/pxa168.h
··· 17 17 #include <linux/platform_data/keypad-pxa27x.h> 18 18 #include <linux/pxa168_eth.h> 19 19 #include <linux/platform_data/mv_usb.h> 20 + #include <linux/soc/mmp/cputype.h> 20 21 21 22 #include "devices.h" 22 - #include "cputype.h" 23 23 24 24 extern struct pxa_device_desc pxa168_device_uart1; 25 25 extern struct pxa_device_desc pxa168_device_uart2;
+11 -1
arch/arm/mach-vexpress/spc.c
··· 551 551 552 552 static int __init ve_spc_clk_init(void) 553 553 { 554 - int cpu; 554 + int cpu, cluster; 555 555 struct clk *clk; 556 + bool init_opp_table[MAX_CLUSTERS] = { false }; 556 557 557 558 if (!info) 558 559 return 0; /* Continue only if SPC is initialised */ ··· 579 578 continue; 580 579 } 581 580 581 + cluster = topology_physical_package_id(cpu_dev->id); 582 + if (init_opp_table[cluster]) 583 + continue; 584 + 582 585 if (ve_init_opp_table(cpu_dev)) 583 586 pr_warn("failed to initialise cpu%d opp table\n", cpu); 587 + else if (dev_pm_opp_set_sharing_cpus(cpu_dev, 588 + topology_core_cpumask(cpu_dev->id))) 589 + pr_warn("failed to mark OPPs shared for cpu%d\n", cpu); 590 + else 591 + init_opp_table[cluster] = true; 584 592 } 585 593 586 594 platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
+8 -2
arch/arm64/boot/dts/freescale/fsl-ls1028a.dtsi
··· 88 88 89 89 reboot { 90 90 compatible ="syscon-reboot"; 91 - regmap = <&dcfg>; 91 + regmap = <&rst>; 92 92 offset = <0xb0>; 93 93 mask = <0x02>; 94 94 }; ··· 176 176 compatible = "fsl,ls1028a-dcfg", "syscon"; 177 177 reg = <0x0 0x1e00000 0x0 0x10000>; 178 178 big-endian; 179 + }; 180 + 181 + rst: syscon@1e60000 { 182 + compatible = "syscon"; 183 + reg = <0x0 0x1e60000 0x0 0x10000>; 184 + little-endian; 179 185 }; 180 186 181 187 scfg: syscon@1fc0000 { ··· 590 584 0x00010004 0x0000003d 591 585 0x00010005 0x00000045 592 586 0x00010006 0x0000004d 593 - 0x00010007 0x00000045 587 + 0x00010007 0x00000055 594 588 0x00010008 0x0000005e 595 589 0x00010009 0x00000066 596 590 0x0001000a 0x0000006e
+6 -1
drivers/bus/ti-sysc.c
··· 981 981 return ret; 982 982 } 983 983 984 - if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_MSTANDBY) 984 + if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_MSTANDBY) || 985 + ddata->cfg.quirks & (SYSC_QUIRK_FORCE_MSTANDBY)) 985 986 best_mode = SYSC_IDLE_FORCE; 986 987 987 988 reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift); ··· 1583 1582 sysc_val = sysc_read_sysconfig(ddata); 1584 1583 sysc_val |= sysc_mask; 1585 1584 sysc_write(ddata, sysc_offset, sysc_val); 1585 + 1586 + if (ddata->cfg.srst_udelay) 1587 + usleep_range(ddata->cfg.srst_udelay, 1588 + ddata->cfg.srst_udelay * 2); 1586 1589 1587 1590 if (ddata->clk_enable_quirk) 1588 1591 ddata->clk_enable_quirk(ddata);
+1 -1
drivers/cpufreq/vexpress-spc-cpufreq.c
··· 434 434 if (cur_cluster < MAX_CLUSTERS) { 435 435 int cpu; 436 436 437 - cpumask_copy(policy->cpus, topology_core_cpumask(policy->cpu)); 437 + dev_pm_opp_get_sharing_cpus(cpu_dev, policy->cpus); 438 438 439 439 for_each_cpu(cpu, policy->cpus) 440 440 per_cpu(physical_cluster, cpu) = cur_cluster;
+4 -6
drivers/reset/core.c
··· 787 787 return ERR_PTR(-ENOMEM); 788 788 789 789 rstc = __reset_control_get(dev, id, index, shared, optional, acquired); 790 - if (!IS_ERR(rstc)) { 790 + if (!IS_ERR_OR_NULL(rstc)) { 791 791 *ptr = rstc; 792 792 devres_add(dev, ptr); 793 793 } else { ··· 861 861 * @acquired: only one reset control may be acquired for a given controller 862 862 * and ID 863 863 * 864 - * Returns pointer to allocated reset_control_array on success or 865 - * error on failure 864 + * Returns pointer to allocated reset_control on success or error on failure 866 865 */ 867 866 struct reset_control * 868 867 of_reset_control_array_get(struct device_node *np, bool shared, bool optional, ··· 914 915 * that just have to be asserted or deasserted, without any 915 916 * requirements on the order. 916 917 * 917 - * Returns pointer to allocated reset_control_array on success or 918 - * error on failure 918 + * Returns pointer to allocated reset_control on success or error on failure 919 919 */ 920 920 struct reset_control * 921 921 devm_reset_control_array_get(struct device *dev, bool shared, bool optional) ··· 928 930 return ERR_PTR(-ENOMEM); 929 931 930 932 rstc = of_reset_control_array_get(dev->of_node, shared, optional, true); 931 - if (IS_ERR(rstc)) { 933 + if (IS_ERR_OR_NULL(rstc)) { 932 934 devres_free(devres); 933 935 return rstc; 934 936 }
-6
drivers/reset/reset-brcmstb.c
··· 91 91 return -ENOMEM; 92 92 93 93 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); 94 - if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) || 95 - !IS_ALIGNED(resource_size(res), SW_INIT_BANK_SIZE)) { 96 - dev_err(kdev, "incorrect register range\n"); 97 - return -EINVAL; 98 - } 99 - 100 94 priv->base = devm_ioremap_resource(kdev, res); 101 95 if (IS_ERR(priv->base)) 102 96 return PTR_ERR(priv->base);
+1
include/linux/platform_data/ti-sysc.h
··· 49 49 s8 emufree_shift; 50 50 }; 51 51 52 + #define SYSC_QUIRK_FORCE_MSTANDBY BIT(20) 52 53 #define SYSC_MODULE_QUIRK_AESS BIT(19) 53 54 #define SYSC_MODULE_QUIRK_SGX BIT(18) 54 55 #define SYSC_MODULE_QUIRK_HDQ1W BIT(17)