mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-30 14:19:16 +00:00
ARM: SoC fixes
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, but0e4a459f56
("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. -----BEGIN PGP SIGNATURE----- iQJDBAABCAAtFiEElf+HevZ4QCAJmMQ+jBrnPN6EHHcFAl33/BcPHG9sb2ZAbGl4 b20ubmV0AAoJEIwa5zzehBx3DtAP+wWlWswNVYUypZp5qhsTQ9cezsACbR+kh7WD qpEFxylLxqI1MqKnbZ7CTOKWQHPiqA5hMnuK1gBpzOvXTK+akYa0VtdG1ETRkJni L9QXjWq7ax1J68yAeKgIff6WWBBKr98C+HZ3uK/3jdat1xKLHUXrH6T/cgUjG0jm JtomFEIVtMb/RdW3rbfxA4IfmrxfCAs4fQQwc9xkc23dEeF3Y9oSxsRxRT9C7J4I ZnqvWTWaWN77y/4V4hUMhdPwGI4hH8fv71DFEgP+9LqG3OVQvKfc+H5UrR0KUjEY qk8bAD1jcLbkICpazeQDozAbdTt1NBSt+4zBm4gZA9vZc78Tk3mbJ4+m5JlZNt4h PQf8r6n8GYZ266mr6k5rPZ/kNv4dxL59HIkZL1EER8vUvZykEl1nztjw4PMt0xX1 xK7xfx9p6YN/jKDcwTTCuSzMd8d3YWqbuXzpbTbZCe4dsDiwfsSMaskIGRU7bx2U LvGZ0uVc8x7m7lV2NHvOVVzBg/i7H7l3Xq7Qq7doHExqmenFWcjG0YKiMeGUOE3X sCvHH0ip45x3vxiYzRRnUWmNyrcHnR1M2X3UwqXt9GHLgJ2vD+jS32cve2x643XN tby+szKimDbyeqxPDfWkUV0K1if66PFt3Czr0erFHYadS3o47v23pHjhsl+fIcY6 2xx8hH8O =cr5E -----END PGP SIGNATURE----- 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, but0e4a459f56
("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 ...
This commit is contained in:
commit
ea200dec51
26 changed files with 78 additions and 45 deletions
1
.mailmap
1
.mailmap
|
@ -152,6 +152,7 @@ Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@web.de>
|
||||||
Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
|
Linus Lüssing <linus.luessing@c0d3.blue> <linus.luessing@ascom.ch>
|
||||||
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
Li Yang <leoyang.li@nxp.com> <leo@zh-kernel.org>
|
||||||
Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
Li Yang <leoyang.li@nxp.com> <leoli@freescale.com>
|
||||||
|
Lukasz Luba <lukasz.luba@arm.com> <l.luba@partner.samsung.com>
|
||||||
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
Maciej W. Rozycki <macro@mips.com> <macro@imgtec.com>
|
||||||
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
Marc Zyngier <maz@kernel.org> <marc.zyngier@arm.com>
|
||||||
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
Marcin Nowakowski <marcin.nowakowski@mips.com> <marcin.nowakowski@imgtec.com>
|
||||||
|
|
|
@ -22,6 +22,6 @@ Example:
|
||||||
};
|
};
|
||||||
|
|
||||||
ðernet_switch {
|
ðernet_switch {
|
||||||
resets = <&reset>;
|
resets = <&reset 26>;
|
||||||
reset-names = "switch";
|
reset-names = "switch";
|
||||||
};
|
};
|
||||||
|
|
|
@ -2272,6 +2272,7 @@ F: drivers/*/*s3c64xx*
|
||||||
F: drivers/*/*s5pv210*
|
F: drivers/*/*s5pv210*
|
||||||
F: drivers/memory/samsung/
|
F: drivers/memory/samsung/
|
||||||
F: drivers/soc/samsung/
|
F: drivers/soc/samsung/
|
||||||
|
F: drivers/tty/serial/samsung*
|
||||||
F: include/linux/soc/samsung/
|
F: include/linux/soc/samsung/
|
||||||
F: Documentation/arm/samsung/
|
F: Documentation/arm/samsung/
|
||||||
F: Documentation/devicetree/bindings/arm/samsung/
|
F: Documentation/devicetree/bindings/arm/samsung/
|
||||||
|
@ -5000,7 +5001,7 @@ F: include/linux/dma-mapping.h
|
||||||
F: include/linux/dma-noncoherent.h
|
F: include/linux/dma-noncoherent.h
|
||||||
|
|
||||||
DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422
|
DMC FREQUENCY DRIVER FOR SAMSUNG EXYNOS5422
|
||||||
M: Lukasz Luba <l.luba@partner.samsung.com>
|
M: Lukasz Luba <lukasz.luba@arm.com>
|
||||||
L: linux-pm@vger.kernel.org
|
L: linux-pm@vger.kernel.org
|
||||||
L: linux-samsung-soc@vger.kernel.org
|
L: linux-samsung-soc@vger.kernel.org
|
||||||
S: Maintained
|
S: Maintained
|
||||||
|
|
|
@ -108,7 +108,7 @@ ethphy0: ethernet-phy@0 {
|
||||||
|
|
||||||
&cpsw_emac0 {
|
&cpsw_emac0 {
|
||||||
phy-handle = <ðphy0>;
|
phy-handle = <ðphy0>;
|
||||||
phy-mode = "rgmii-txid";
|
phy-mode = "rgmii-id";
|
||||||
};
|
};
|
||||||
|
|
||||||
&i2c0 {
|
&i2c0 {
|
||||||
|
|
|
@ -86,7 +86,7 @@ &gpio4 3 GPIO_ACTIVE_HIGH /* Bank4, pin3 */
|
||||||
};
|
};
|
||||||
|
|
||||||
lcd0: display {
|
lcd0: display {
|
||||||
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
|
compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
|
||||||
backlight = <&lcd_bl>;
|
backlight = <&lcd_bl>;
|
||||||
|
|
|
@ -42,7 +42,7 @@ vbat: fixedregulator0 {
|
||||||
};
|
};
|
||||||
|
|
||||||
lcd0: display {
|
lcd0: display {
|
||||||
compatible = "osddisplays,osd057T0559-34ts", "panel-dpi";
|
compatible = "osddisplays,osd070t1718-19ts", "panel-dpi";
|
||||||
label = "lcd";
|
label = "lcd";
|
||||||
|
|
||||||
backlight = <&lcd_bl>;
|
backlight = <&lcd_bl>;
|
||||||
|
|
|
@ -174,8 +174,8 @@ gpio_crmu: gpio@3024800 {
|
||||||
mdio: mdio@18002000 {
|
mdio: mdio@18002000 {
|
||||||
compatible = "brcm,iproc-mdio";
|
compatible = "brcm,iproc-mdio";
|
||||||
reg = <0x18002000 0x8>;
|
reg = <0x18002000 0x8>;
|
||||||
#size-cells = <1>;
|
#size-cells = <0>;
|
||||||
#address-cells = <0>;
|
#address-cells = <1>;
|
||||||
status = "disabled";
|
status = "disabled";
|
||||||
|
|
||||||
gphy0: ethernet-phy@0 {
|
gphy0: ethernet-phy@0 {
|
||||||
|
|
|
@ -43,7 +43,7 @@ soc {
|
||||||
<0x7c000000 0x0 0xfc000000 0x02000000>,
|
<0x7c000000 0x0 0xfc000000 0x02000000>,
|
||||||
<0x40000000 0x0 0xff800000 0x00800000>;
|
<0x40000000 0x0 0xff800000 0x00800000>;
|
||||||
/* Emulate a contiguous 30-bit address range for DMA */
|
/* Emulate a contiguous 30-bit address range for DMA */
|
||||||
dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>;
|
dma-ranges = <0xc0000000 0x0 0x00000000 0x40000000>;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This node is the provider for the enable-method for
|
* This node is the provider for the enable-method for
|
||||||
|
|
|
@ -37,7 +37,7 @@ cpu_thermal: cpu-thermal {
|
||||||
|
|
||||||
trips {
|
trips {
|
||||||
cpu-crit {
|
cpu-crit {
|
||||||
temperature = <80000>;
|
temperature = <90000>;
|
||||||
hysteresis = <0>;
|
hysteresis = <0>;
|
||||||
type = "critical";
|
type = "critical";
|
||||||
};
|
};
|
||||||
|
|
|
@ -353,8 +353,8 @@ gmac3: ethernet@27000 {
|
||||||
mdio: mdio@18003000 {
|
mdio: mdio@18003000 {
|
||||||
compatible = "brcm,iproc-mdio";
|
compatible = "brcm,iproc-mdio";
|
||||||
reg = <0x18003000 0x8>;
|
reg = <0x18003000 0x8>;
|
||||||
#size-cells = <1>;
|
#size-cells = <0>;
|
||||||
#address-cells = <0>;
|
#address-cells = <1>;
|
||||||
};
|
};
|
||||||
|
|
||||||
mdio-bus-mux@18003000 {
|
mdio-bus-mux@18003000 {
|
||||||
|
|
|
@ -265,11 +265,6 @@ ldortc1_reg: LDORTC1 {
|
||||||
regulator-name = "LDORTC1";
|
regulator-name = "LDORTC1";
|
||||||
regulator-boot-on;
|
regulator-boot-on;
|
||||||
};
|
};
|
||||||
|
|
||||||
ldortc2_reg: LDORTC2 {
|
|
||||||
regulator-name = "LDORTC2";
|
|
||||||
regulator-boot-on;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -30,14 +30,26 @@ reg_sd1_vmmc: regulator-sd1-vmmc {
|
||||||
enable-active-high;
|
enable-active-high;
|
||||||
};
|
};
|
||||||
|
|
||||||
reg_sensors: regulator-sensors {
|
reg_peri_3v3: regulator-peri-3v3 {
|
||||||
compatible = "regulator-fixed";
|
compatible = "regulator-fixed";
|
||||||
pinctrl-names = "default";
|
pinctrl-names = "default";
|
||||||
pinctrl-0 = <&pinctrl_sensors_reg>;
|
pinctrl-0 = <&pinctrl_peri_3v3>;
|
||||||
regulator-name = "sensors-supply";
|
regulator-name = "VPERI_3V3";
|
||||||
regulator-min-microvolt = <3300000>;
|
regulator-min-microvolt = <3300000>;
|
||||||
regulator-max-microvolt = <3300000>;
|
regulator-max-microvolt = <3300000>;
|
||||||
gpio = <&gpio5 2 GPIO_ACTIVE_LOW>;
|
gpio = <&gpio5 2 GPIO_ACTIVE_LOW>;
|
||||||
|
/*
|
||||||
|
* If you want to want to make this dynamic please
|
||||||
|
* check schematics and test all affected peripherals:
|
||||||
|
*
|
||||||
|
* - sensors
|
||||||
|
* - ethernet phy
|
||||||
|
* - can
|
||||||
|
* - bluetooth
|
||||||
|
* - wm8960 audio codec
|
||||||
|
* - ov5640 camera
|
||||||
|
*/
|
||||||
|
regulator-always-on;
|
||||||
};
|
};
|
||||||
|
|
||||||
reg_can_3v3: regulator-can-3v3 {
|
reg_can_3v3: regulator-can-3v3 {
|
||||||
|
@ -140,6 +152,7 @@ &fec1 {
|
||||||
pinctrl-0 = <&pinctrl_enet1>;
|
pinctrl-0 = <&pinctrl_enet1>;
|
||||||
phy-mode = "rmii";
|
phy-mode = "rmii";
|
||||||
phy-handle = <ðphy0>;
|
phy-handle = <ðphy0>;
|
||||||
|
phy-supply = <®_peri_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -148,6 +161,7 @@ &fec2 {
|
||||||
pinctrl-0 = <&pinctrl_enet2>;
|
pinctrl-0 = <&pinctrl_enet2>;
|
||||||
phy-mode = "rmii";
|
phy-mode = "rmii";
|
||||||
phy-handle = <ðphy1>;
|
phy-handle = <ðphy1>;
|
||||||
|
phy-supply = <®_peri_3v3>;
|
||||||
status = "okay";
|
status = "okay";
|
||||||
|
|
||||||
mdio {
|
mdio {
|
||||||
|
@ -193,8 +207,8 @@ &i2c1 {
|
||||||
magnetometer@e {
|
magnetometer@e {
|
||||||
compatible = "fsl,mag3110";
|
compatible = "fsl,mag3110";
|
||||||
reg = <0x0e>;
|
reg = <0x0e>;
|
||||||
vdd-supply = <®_sensors>;
|
vdd-supply = <®_peri_3v3>;
|
||||||
vddio-supply = <®_sensors>;
|
vddio-supply = <®_peri_3v3>;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -227,7 +241,7 @@ &qspi {
|
||||||
flash0: n25q256a@0 {
|
flash0: n25q256a@0 {
|
||||||
#address-cells = <1>;
|
#address-cells = <1>;
|
||||||
#size-cells = <1>;
|
#size-cells = <1>;
|
||||||
compatible = "micron,n25q256a";
|
compatible = "micron,n25q256a", "jedec,spi-nor";
|
||||||
spi-max-frequency = <29000000>;
|
spi-max-frequency = <29000000>;
|
||||||
spi-rx-bus-width = <4>;
|
spi-rx-bus-width = <4>;
|
||||||
spi-tx-bus-width = <4>;
|
spi-tx-bus-width = <4>;
|
||||||
|
@ -462,7 +476,7 @@ MX6UL_PAD_SNVS_TAMPER4__GPIO5_IO04 0x17059
|
||||||
>;
|
>;
|
||||||
};
|
};
|
||||||
|
|
||||||
pinctrl_sensors_reg: sensorsreggrp {
|
pinctrl_peri_3v3: peri3v3grp {
|
||||||
fsl,pins = <
|
fsl,pins = <
|
||||||
MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0
|
MX6UL_PAD_SNVS_TAMPER2__GPIO5_IO02 0x1b0b0
|
||||||
>;
|
>;
|
||||||
|
|
|
@ -350,6 +350,7 @@ CONFIG_PRINTK_TIME=y
|
||||||
CONFIG_DYNAMIC_DEBUG=y
|
CONFIG_DYNAMIC_DEBUG=y
|
||||||
CONFIG_DEBUG_INFO=y
|
CONFIG_DEBUG_INFO=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
CONFIG_DEBUG_KERNEL=y
|
CONFIG_DEBUG_KERNEL=y
|
||||||
CONFIG_SOFTLOCKUP_DETECTOR=y
|
CONFIG_SOFTLOCKUP_DETECTOR=y
|
||||||
# CONFIG_DETECT_HUNG_TASK is not set
|
# CONFIG_DETECT_HUNG_TASK is not set
|
||||||
|
|
|
@ -462,6 +462,7 @@ CONFIG_FONT_8x8=y
|
||||||
CONFIG_FONT_8x16=y
|
CONFIG_FONT_8x16=y
|
||||||
CONFIG_PRINTK_TIME=y
|
CONFIG_PRINTK_TIME=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
# CONFIG_SCHED_DEBUG is not set
|
# CONFIG_SCHED_DEBUG is not set
|
||||||
CONFIG_PROVE_LOCKING=y
|
CONFIG_PROVE_LOCKING=y
|
||||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||||
|
|
|
@ -92,6 +92,7 @@ CONFIG_IP_PNP_BOOTP=y
|
||||||
CONFIG_IP_PNP_RARP=y
|
CONFIG_IP_PNP_RARP=y
|
||||||
CONFIG_NETFILTER=y
|
CONFIG_NETFILTER=y
|
||||||
CONFIG_PHONET=m
|
CONFIG_PHONET=m
|
||||||
|
CONFIG_NET_SWITCHDEV=y
|
||||||
CONFIG_CAN=m
|
CONFIG_CAN=m
|
||||||
CONFIG_CAN_C_CAN=m
|
CONFIG_CAN_C_CAN=m
|
||||||
CONFIG_CAN_C_CAN_PLATFORM=m
|
CONFIG_CAN_C_CAN_PLATFORM=m
|
||||||
|
@ -181,6 +182,7 @@ CONFIG_SMSC911X=y
|
||||||
# CONFIG_NET_VENDOR_STMICRO is not set
|
# CONFIG_NET_VENDOR_STMICRO is not set
|
||||||
CONFIG_TI_DAVINCI_EMAC=y
|
CONFIG_TI_DAVINCI_EMAC=y
|
||||||
CONFIG_TI_CPSW=y
|
CONFIG_TI_CPSW=y
|
||||||
|
CONFIG_TI_CPSW_SWITCHDEV=y
|
||||||
CONFIG_TI_CPTS=y
|
CONFIG_TI_CPTS=y
|
||||||
# CONFIG_NET_VENDOR_VIA is not set
|
# CONFIG_NET_VENDOR_VIA is not set
|
||||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||||
|
@ -554,6 +556,6 @@ CONFIG_DEBUG_INFO=y
|
||||||
CONFIG_DEBUG_INFO_SPLIT=y
|
CONFIG_DEBUG_INFO_SPLIT=y
|
||||||
CONFIG_DEBUG_INFO_DWARF4=y
|
CONFIG_DEBUG_INFO_DWARF4=y
|
||||||
CONFIG_MAGIC_SYSRQ=y
|
CONFIG_MAGIC_SYSRQ=y
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
CONFIG_SCHEDSTATS=y
|
CONFIG_SCHEDSTATS=y
|
||||||
# CONFIG_DEBUG_BUGVERBOSE is not set
|
# CONFIG_DEBUG_BUGVERBOSE is not set
|
||||||
CONFIG_TI_CPSW_SWITCHDEV=y
|
|
||||||
|
|
|
@ -212,4 +212,5 @@ CONFIG_DMA_CMA=y
|
||||||
CONFIG_CMA_SIZE_MBYTES=64
|
CONFIG_CMA_SIZE_MBYTES=64
|
||||||
CONFIG_PRINTK_TIME=y
|
CONFIG_PRINTK_TIME=y
|
||||||
# CONFIG_ENABLE_MUST_CHECK is not set
|
# CONFIG_ENABLE_MUST_CHECK is not set
|
||||||
|
CONFIG_DEBUG_FS=y
|
||||||
CONFIG_DEBUG_KERNEL=y
|
CONFIG_DEBUG_KERNEL=y
|
||||||
|
|
|
@ -13,6 +13,7 @@ static const char * const bcm2711_compat[] = {
|
||||||
#ifdef CONFIG_ARCH_MULTI_V7
|
#ifdef CONFIG_ARCH_MULTI_V7
|
||||||
"brcm,bcm2711",
|
"brcm,bcm2711",
|
||||||
#endif
|
#endif
|
||||||
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
DT_MACHINE_START(BCM2711, "BCM2711")
|
DT_MACHINE_START(BCM2711, "BCM2711")
|
||||||
|
|
|
@ -84,7 +84,7 @@ struct device * __init imx_soc_device_init(void)
|
||||||
const char *ocotp_compat = NULL;
|
const char *ocotp_compat = NULL;
|
||||||
struct soc_device *soc_dev;
|
struct soc_device *soc_dev;
|
||||||
struct device_node *root;
|
struct device_node *root;
|
||||||
struct regmap *ocotp;
|
struct regmap *ocotp = NULL;
|
||||||
const char *soc_id;
|
const char *soc_id;
|
||||||
u64 soc_uid = 0;
|
u64 soc_uid = 0;
|
||||||
u32 val;
|
u32 val;
|
||||||
|
@ -148,11 +148,11 @@ struct device * __init imx_soc_device_init(void)
|
||||||
soc_id = "i.MX6UL";
|
soc_id = "i.MX6UL";
|
||||||
break;
|
break;
|
||||||
case MXC_CPU_IMX6ULL:
|
case MXC_CPU_IMX6ULL:
|
||||||
ocotp_compat = "fsl,imx6ul-ocotp";
|
ocotp_compat = "fsl,imx6ull-ocotp";
|
||||||
soc_id = "i.MX6ULL";
|
soc_id = "i.MX6ULL";
|
||||||
break;
|
break;
|
||||||
case MXC_CPU_IMX6ULZ:
|
case MXC_CPU_IMX6ULZ:
|
||||||
ocotp_compat = "fsl,imx6ul-ocotp";
|
ocotp_compat = "fsl,imx6ull-ocotp";
|
||||||
soc_id = "i.MX6ULZ";
|
soc_id = "i.MX6ULZ";
|
||||||
break;
|
break;
|
||||||
case MXC_CPU_IMX6SLL:
|
case MXC_CPU_IMX6SLL:
|
||||||
|
@ -175,7 +175,9 @@ struct device * __init imx_soc_device_init(void)
|
||||||
ocotp = syscon_regmap_lookup_by_compatible(ocotp_compat);
|
ocotp = syscon_regmap_lookup_by_compatible(ocotp_compat);
|
||||||
if (IS_ERR(ocotp))
|
if (IS_ERR(ocotp))
|
||||||
pr_err("%s: failed to find %s regmap!\n", __func__, ocotp_compat);
|
pr_err("%s: failed to find %s regmap!\n", __func__, ocotp_compat);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!IS_ERR_OR_NULL(ocotp)) {
|
||||||
regmap_read(ocotp, OCOTP_UID_H, &val);
|
regmap_read(ocotp, OCOTP_UID_H, &val);
|
||||||
soc_uid = val;
|
soc_uid = val;
|
||||||
regmap_read(ocotp, OCOTP_UID_L, &val);
|
regmap_read(ocotp, OCOTP_UID_L, &val);
|
||||||
|
|
|
@ -17,9 +17,9 @@ extern void pxa168_clear_keypad_wakeup(void);
|
||||||
#include <linux/platform_data/keypad-pxa27x.h>
|
#include <linux/platform_data/keypad-pxa27x.h>
|
||||||
#include <linux/pxa168_eth.h>
|
#include <linux/pxa168_eth.h>
|
||||||
#include <linux/platform_data/mv_usb.h>
|
#include <linux/platform_data/mv_usb.h>
|
||||||
|
#include <linux/soc/mmp/cputype.h>
|
||||||
|
|
||||||
#include "devices.h"
|
#include "devices.h"
|
||||||
#include "cputype.h"
|
|
||||||
|
|
||||||
extern struct pxa_device_desc pxa168_device_uart1;
|
extern struct pxa_device_desc pxa168_device_uart1;
|
||||||
extern struct pxa_device_desc pxa168_device_uart2;
|
extern struct pxa_device_desc pxa168_device_uart2;
|
||||||
|
|
|
@ -551,8 +551,9 @@ static struct clk *ve_spc_clk_register(struct device *cpu_dev)
|
||||||
|
|
||||||
static int __init ve_spc_clk_init(void)
|
static int __init ve_spc_clk_init(void)
|
||||||
{
|
{
|
||||||
int cpu;
|
int cpu, cluster;
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
|
bool init_opp_table[MAX_CLUSTERS] = { false };
|
||||||
|
|
||||||
if (!info)
|
if (!info)
|
||||||
return 0; /* Continue only if SPC is initialised */
|
return 0; /* Continue only if SPC is initialised */
|
||||||
|
@ -578,8 +579,17 @@ static int __init ve_spc_clk_init(void)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cluster = topology_physical_package_id(cpu_dev->id);
|
||||||
|
if (init_opp_table[cluster])
|
||||||
|
continue;
|
||||||
|
|
||||||
if (ve_init_opp_table(cpu_dev))
|
if (ve_init_opp_table(cpu_dev))
|
||||||
pr_warn("failed to initialise cpu%d opp table\n", cpu);
|
pr_warn("failed to initialise cpu%d opp table\n", cpu);
|
||||||
|
else if (dev_pm_opp_set_sharing_cpus(cpu_dev,
|
||||||
|
topology_core_cpumask(cpu_dev->id)))
|
||||||
|
pr_warn("failed to mark OPPs shared for cpu%d\n", cpu);
|
||||||
|
else
|
||||||
|
init_opp_table[cluster] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
|
platform_device_register_simple("vexpress-spc-cpufreq", -1, NULL, 0);
|
||||||
|
|
|
@ -88,7 +88,7 @@ dpclk: clock-controller@f1f0000 {
|
||||||
|
|
||||||
reboot {
|
reboot {
|
||||||
compatible ="syscon-reboot";
|
compatible ="syscon-reboot";
|
||||||
regmap = <&dcfg>;
|
regmap = <&rst>;
|
||||||
offset = <0xb0>;
|
offset = <0xb0>;
|
||||||
mask = <0x02>;
|
mask = <0x02>;
|
||||||
};
|
};
|
||||||
|
@ -178,6 +178,12 @@ dcfg: syscon@1e00000 {
|
||||||
big-endian;
|
big-endian;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
rst: syscon@1e60000 {
|
||||||
|
compatible = "syscon";
|
||||||
|
reg = <0x0 0x1e60000 0x0 0x10000>;
|
||||||
|
little-endian;
|
||||||
|
};
|
||||||
|
|
||||||
scfg: syscon@1fc0000 {
|
scfg: syscon@1fc0000 {
|
||||||
compatible = "fsl,ls1028a-scfg", "syscon";
|
compatible = "fsl,ls1028a-scfg", "syscon";
|
||||||
reg = <0x0 0x1fc0000 0x0 0x10000>;
|
reg = <0x0 0x1fc0000 0x0 0x10000>;
|
||||||
|
@ -584,7 +590,7 @@ tmu: tmu@1f80000 {
|
||||||
0x00010004 0x0000003d
|
0x00010004 0x0000003d
|
||||||
0x00010005 0x00000045
|
0x00010005 0x00000045
|
||||||
0x00010006 0x0000004d
|
0x00010006 0x0000004d
|
||||||
0x00010007 0x00000045
|
0x00010007 0x00000055
|
||||||
0x00010008 0x0000005e
|
0x00010008 0x0000005e
|
||||||
0x00010009 0x00000066
|
0x00010009 0x00000066
|
||||||
0x0001000a 0x0000006e
|
0x0001000a 0x0000006e
|
||||||
|
|
|
@ -981,7 +981,8 @@ static int sysc_disable_module(struct device *dev)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ddata->cfg.quirks & SYSC_QUIRK_SWSUP_MSTANDBY)
|
if (ddata->cfg.quirks & (SYSC_QUIRK_SWSUP_MSTANDBY) ||
|
||||||
|
ddata->cfg.quirks & (SYSC_QUIRK_FORCE_MSTANDBY))
|
||||||
best_mode = SYSC_IDLE_FORCE;
|
best_mode = SYSC_IDLE_FORCE;
|
||||||
|
|
||||||
reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift);
|
reg &= ~(SYSC_IDLE_MASK << regbits->midle_shift);
|
||||||
|
@ -1583,6 +1584,10 @@ static int sysc_reset(struct sysc *ddata)
|
||||||
sysc_val |= sysc_mask;
|
sysc_val |= sysc_mask;
|
||||||
sysc_write(ddata, sysc_offset, sysc_val);
|
sysc_write(ddata, sysc_offset, sysc_val);
|
||||||
|
|
||||||
|
if (ddata->cfg.srst_udelay)
|
||||||
|
usleep_range(ddata->cfg.srst_udelay,
|
||||||
|
ddata->cfg.srst_udelay * 2);
|
||||||
|
|
||||||
if (ddata->clk_enable_quirk)
|
if (ddata->clk_enable_quirk)
|
||||||
ddata->clk_enable_quirk(ddata);
|
ddata->clk_enable_quirk(ddata);
|
||||||
|
|
||||||
|
|
|
@ -434,7 +434,7 @@ static int ve_spc_cpufreq_init(struct cpufreq_policy *policy)
|
||||||
if (cur_cluster < MAX_CLUSTERS) {
|
if (cur_cluster < MAX_CLUSTERS) {
|
||||||
int cpu;
|
int cpu;
|
||||||
|
|
||||||
cpumask_copy(policy->cpus, topology_core_cpumask(policy->cpu));
|
dev_pm_opp_get_sharing_cpus(cpu_dev, policy->cpus);
|
||||||
|
|
||||||
for_each_cpu(cpu, policy->cpus)
|
for_each_cpu(cpu, policy->cpus)
|
||||||
per_cpu(physical_cluster, cpu) = cur_cluster;
|
per_cpu(physical_cluster, cpu) = cur_cluster;
|
||||||
|
|
|
@ -787,7 +787,7 @@ struct reset_control *__devm_reset_control_get(struct device *dev,
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
rstc = __reset_control_get(dev, id, index, shared, optional, acquired);
|
rstc = __reset_control_get(dev, id, index, shared, optional, acquired);
|
||||||
if (!IS_ERR(rstc)) {
|
if (!IS_ERR_OR_NULL(rstc)) {
|
||||||
*ptr = rstc;
|
*ptr = rstc;
|
||||||
devres_add(dev, ptr);
|
devres_add(dev, ptr);
|
||||||
} else {
|
} else {
|
||||||
|
@ -861,8 +861,7 @@ static int of_reset_control_get_count(struct device_node *node)
|
||||||
* @acquired: only one reset control may be acquired for a given controller
|
* @acquired: only one reset control may be acquired for a given controller
|
||||||
* and ID
|
* and ID
|
||||||
*
|
*
|
||||||
* Returns pointer to allocated reset_control_array on success or
|
* Returns pointer to allocated reset_control on success or error on failure
|
||||||
* error on failure
|
|
||||||
*/
|
*/
|
||||||
struct reset_control *
|
struct reset_control *
|
||||||
of_reset_control_array_get(struct device_node *np, bool shared, bool optional,
|
of_reset_control_array_get(struct device_node *np, bool shared, bool optional,
|
||||||
|
@ -915,8 +914,7 @@ EXPORT_SYMBOL_GPL(of_reset_control_array_get);
|
||||||
* that just have to be asserted or deasserted, without any
|
* that just have to be asserted or deasserted, without any
|
||||||
* requirements on the order.
|
* requirements on the order.
|
||||||
*
|
*
|
||||||
* Returns pointer to allocated reset_control_array on success or
|
* Returns pointer to allocated reset_control on success or error on failure
|
||||||
* error on failure
|
|
||||||
*/
|
*/
|
||||||
struct reset_control *
|
struct reset_control *
|
||||||
devm_reset_control_array_get(struct device *dev, bool shared, bool optional)
|
devm_reset_control_array_get(struct device *dev, bool shared, bool optional)
|
||||||
|
@ -930,7 +928,7 @@ devm_reset_control_array_get(struct device *dev, bool shared, bool optional)
|
||||||
return ERR_PTR(-ENOMEM);
|
return ERR_PTR(-ENOMEM);
|
||||||
|
|
||||||
rstc = of_reset_control_array_get(dev->of_node, shared, optional, true);
|
rstc = of_reset_control_array_get(dev->of_node, shared, optional, true);
|
||||||
if (IS_ERR(rstc)) {
|
if (IS_ERR_OR_NULL(rstc)) {
|
||||||
devres_free(devres);
|
devres_free(devres);
|
||||||
return rstc;
|
return rstc;
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,12 +91,6 @@ static int brcmstb_reset_probe(struct platform_device *pdev)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||||
if (!IS_ALIGNED(res->start, SW_INIT_BANK_SIZE) ||
|
|
||||||
!IS_ALIGNED(resource_size(res), SW_INIT_BANK_SIZE)) {
|
|
||||||
dev_err(kdev, "incorrect register range\n");
|
|
||||||
return -EINVAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
priv->base = devm_ioremap_resource(kdev, res);
|
priv->base = devm_ioremap_resource(kdev, res);
|
||||||
if (IS_ERR(priv->base))
|
if (IS_ERR(priv->base))
|
||||||
return PTR_ERR(priv->base);
|
return PTR_ERR(priv->base);
|
||||||
|
|
|
@ -49,6 +49,7 @@ struct sysc_regbits {
|
||||||
s8 emufree_shift;
|
s8 emufree_shift;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define SYSC_QUIRK_FORCE_MSTANDBY BIT(20)
|
||||||
#define SYSC_MODULE_QUIRK_AESS BIT(19)
|
#define SYSC_MODULE_QUIRK_AESS BIT(19)
|
||||||
#define SYSC_MODULE_QUIRK_SGX BIT(18)
|
#define SYSC_MODULE_QUIRK_SGX BIT(18)
|
||||||
#define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
|
#define SYSC_MODULE_QUIRK_HDQ1W BIT(17)
|
||||||
|
|
Loading…
Reference in a new issue