Skip to content

Commit dbc3c09

Browse files
committed
Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC fixes from Olof Johansson: "A bigger batch than I anticipated this week, for two reasons: - Some fallout on Davinci from board file -> DTB conversion, that also includes a few longer-standing fixes (i.e. not recent regressions). - drivers/reset material that has been in linux-next for a while, but didn't get sent to us until now for a variety of reasons (maintainer out sick, holidays, etc). There's a functional dependency in there such that one platform (Altera's SoCFPGA) won't boot without one of the patches; instead of reverting the patch that got merged, I looked at this set and decided it was small enough that I'll pick it up anyway. If you disagree I can revisit with a smaller set. That being said, there's also a handful of the usual stuff: - Fix for a crash on Armada 7K/8K when the kernel touches PSCI-reserved memory - Fix for PCIe reset on Macchiatobin (Armada 8K development board, what this email is sent from in fact :) - Enable a few new-merged modules for Amlogic in arm64 defconfig - Error path fixes on Integrator - Build fix for Renesas and Qualcomm - Initialization fix for Renesas RZ/G2E .. plus a few more fixlets" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits) ARM: integrator: impd1: use struct_size() in devm_kzalloc() qcom-scm: Include <linux/err.h> header gpio: pl061: handle failed allocations ARM: dts: kirkwood: Fix polarity of GPIO fan lines arm64: dts: marvell: mcbin: fix PCIe reset signal arm64: dts: marvell: armada-ap806: reserve PSCI area ARM: dts: da850-lcdk: Correct the sound card name ARM: dts: da850-lcdk: Correct the audio codec regulators ARM: dts: da850-evm: Correct the sound card name ARM: dts: da850-evm: Correct the audio codec regulators ARM: davinci: omapl138-hawk: fix label names in GPIO lookup entries ARM: davinci: dm644x-evm: fix label names in GPIO lookup entries ARM: davinci: dm355-evm: fix label names in GPIO lookup entries ARM: davinci: da850-evm: fix label names in GPIO lookup entries ARM: davinci: da830-evm: fix label names in GPIO lookup entries arm64: defconfig: enable modules for amlogic s400 sound card reset: uniphier-glue: Add AHCI reset control support in glue layer dt-bindings: reset: uniphier: Add AHCI core reset description reset: uniphier-usb3: Rename to reset-uniphier-glue dt-bindings: reset: uniphier: Replace the expression of USB3 with generic peripherals ...
2 parents 6b529fb + 4656121 commit dbc3c09

File tree

26 files changed

+321
-93
lines changed

26 files changed

+321
-93
lines changed

Documentation/devicetree/bindings/reset/socfpga-reset.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
Altera SOCFPGA Reset Manager
22

33
Required properties:
4-
- compatible : "altr,rst-mgr"
4+
- compatible : "altr,rst-mgr" for (Cyclone5/Arria5/Arria10)
5+
"altr,stratix10-rst-mgr","altr,rst-mgr" for Stratix10 ARM64 SoC
56
- reg : Should contain 1 register ranges(address and length)
67
- altr,modrst-offset : Should contain the offset of the first modrst register.
78
- #reset-cells: 1

Documentation/devicetree/bindings/reset/uniphier-reset.txt

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,27 +120,30 @@ Example:
120120
};
121121

122122

123-
USB3 core reset
124-
---------------
123+
Peripheral core reset in glue layer
124+
-----------------------------------
125125

126-
USB3 core reset belongs to USB3 glue layer. Before using the core reset,
127-
it is necessary to control the clocks and resets to enable this layer.
128-
These clocks and resets should be described in each property.
126+
Some peripheral core reset belongs to its own glue layer. Before using
127+
this core reset, it is necessary to control the clocks and resets to enable
128+
this layer. These clocks and resets should be described in each property.
129129

130130
Required properties:
131131
- compatible: Should be
132-
"socionext,uniphier-pro4-usb3-reset" - for Pro4 SoC
133-
"socionext,uniphier-pxs2-usb3-reset" - for PXs2 SoC
134-
"socionext,uniphier-ld20-usb3-reset" - for LD20 SoC
135-
"socionext,uniphier-pxs3-usb3-reset" - for PXs3 SoC
132+
"socionext,uniphier-pro4-usb3-reset" - for Pro4 SoC USB3
133+
"socionext,uniphier-pxs2-usb3-reset" - for PXs2 SoC USB3
134+
"socionext,uniphier-ld20-usb3-reset" - for LD20 SoC USB3
135+
"socionext,uniphier-pxs3-usb3-reset" - for PXs3 SoC USB3
136+
"socionext,uniphier-pro4-ahci-reset" - for Pro4 SoC AHCI
137+
"socionext,uniphier-pxs2-ahci-reset" - for PXs2 SoC AHCI
138+
"socionext,uniphier-pxs3-ahci-reset" - for PXs3 SoC AHCI
136139
- #reset-cells: Should be 1.
137140
- reg: Specifies offset and length of the register set for the device.
138-
- clocks: A list of phandles to the clock gate for USB3 glue layer.
141+
- clocks: A list of phandles to the clock gate for the glue layer.
139142
According to the clock-names, appropriate clocks are required.
140143
- clock-names: Should contain
141144
"gio", "link" - for Pro4 SoC
142145
"link" - for others
143-
- resets: A list of phandles to the reset control for USB3 glue layer.
146+
- resets: A list of phandles to the reset control for the glue layer.
144147
According to the reset-names, appropriate resets are required.
145148
- reset-names: Should contain
146149
"gio", "link" - for Pro4 SoC

arch/arm/boot/dts/da850-evm.dts

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,28 @@
9494
regulator-boot-on;
9595
};
9696

97+
baseboard_3v3: fixedregulator-3v3 {
98+
/* TPS73701DCQ */
99+
compatible = "regulator-fixed";
100+
regulator-name = "baseboard_3v3";
101+
regulator-min-microvolt = <3300000>;
102+
regulator-max-microvolt = <3300000>;
103+
vin-supply = <&vbat>;
104+
regulator-always-on;
105+
regulator-boot-on;
106+
};
107+
108+
baseboard_1v8: fixedregulator-1v8 {
109+
/* TPS73701DCQ */
110+
compatible = "regulator-fixed";
111+
regulator-name = "baseboard_1v8";
112+
regulator-min-microvolt = <1800000>;
113+
regulator-max-microvolt = <1800000>;
114+
vin-supply = <&vbat>;
115+
regulator-always-on;
116+
regulator-boot-on;
117+
};
118+
97119
backlight_lcd: backlight-regulator {
98120
compatible = "regulator-fixed";
99121
regulator-name = "lcd_backlight_pwr";
@@ -105,7 +127,7 @@
105127

106128
sound {
107129
compatible = "simple-audio-card";
108-
simple-audio-card,name = "DA850/OMAP-L138 EVM";
130+
simple-audio-card,name = "DA850-OMAPL138 EVM";
109131
simple-audio-card,widgets =
110132
"Line", "Line In",
111133
"Line", "Line Out";
@@ -210,10 +232,9 @@
210232

211233
/* Regulators */
212234
IOVDD-supply = <&vdcdc2_reg>;
213-
/* Derived from VBAT: Baseboard 3.3V / 1.8V */
214-
AVDD-supply = <&vbat>;
215-
DRVDD-supply = <&vbat>;
216-
DVDD-supply = <&vbat>;
235+
AVDD-supply = <&baseboard_3v3>;
236+
DRVDD-supply = <&baseboard_3v3>;
237+
DVDD-supply = <&baseboard_1v8>;
217238
};
218239
tca6416: gpio@20 {
219240
compatible = "ti,tca6416";

arch/arm/boot/dts/da850-lcdk.dts

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,39 @@
3939
};
4040
};
4141

42+
vcc_5vd: fixedregulator-vcc_5vd {
43+
compatible = "regulator-fixed";
44+
regulator-name = "vcc_5vd";
45+
regulator-min-microvolt = <5000000>;
46+
regulator-max-microvolt = <5000000>;
47+
regulator-boot-on;
48+
};
49+
50+
vcc_3v3d: fixedregulator-vcc_3v3d {
51+
/* TPS650250 - VDCDC1 */
52+
compatible = "regulator-fixed";
53+
regulator-name = "vcc_3v3d";
54+
regulator-min-microvolt = <3300000>;
55+
regulator-max-microvolt = <3300000>;
56+
vin-supply = <&vcc_5vd>;
57+
regulator-always-on;
58+
regulator-boot-on;
59+
};
60+
61+
vcc_1v8d: fixedregulator-vcc_1v8d {
62+
/* TPS650250 - VDCDC2 */
63+
compatible = "regulator-fixed";
64+
regulator-name = "vcc_1v8d";
65+
regulator-min-microvolt = <1800000>;
66+
regulator-max-microvolt = <1800000>;
67+
vin-supply = <&vcc_5vd>;
68+
regulator-always-on;
69+
regulator-boot-on;
70+
};
71+
4272
sound {
4373
compatible = "simple-audio-card";
44-
simple-audio-card,name = "DA850/OMAP-L138 LCDK";
74+
simple-audio-card,name = "DA850-OMAPL138 LCDK";
4575
simple-audio-card,widgets =
4676
"Line", "Line In",
4777
"Line", "Line Out";
@@ -221,6 +251,12 @@
221251
compatible = "ti,tlv320aic3106";
222252
reg = <0x18>;
223253
status = "okay";
254+
255+
/* Regulators */
256+
IOVDD-supply = <&vcc_3v3d>;
257+
AVDD-supply = <&vcc_3v3d>;
258+
DRVDD-supply = <&vcc_3v3d>;
259+
DVDD-supply = <&vcc_1v8d>;
224260
};
225261
};
226262

arch/arm/boot/dts/kirkwood-dnskw.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
compatible = "gpio-fan";
3737
pinctrl-0 = <&pmx_fan_high_speed &pmx_fan_low_speed>;
3838
pinctrl-names = "default";
39-
gpios = <&gpio1 14 GPIO_ACTIVE_LOW
40-
&gpio1 13 GPIO_ACTIVE_LOW>;
39+
gpios = <&gpio1 14 GPIO_ACTIVE_HIGH
40+
&gpio1 13 GPIO_ACTIVE_HIGH>;
4141
gpio-fan,speed-map = <0 0
4242
3000 1
4343
6000 2>;

arch/arm/mach-davinci/board-da830-evm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,9 +208,9 @@ static struct gpiod_lookup_table mmc_gpios_table = {
208208
.dev_id = "da830-mmc.0",
209209
.table = {
210210
/* gpio chip 1 contains gpio range 32-63 */
211-
GPIO_LOOKUP("davinci_gpio.0", DA830_MMCSD_CD_PIN, "cd",
211+
GPIO_LOOKUP("davinci_gpio", DA830_MMCSD_CD_PIN, "cd",
212212
GPIO_ACTIVE_LOW),
213-
GPIO_LOOKUP("davinci_gpio.0", DA830_MMCSD_WP_PIN, "wp",
213+
GPIO_LOOKUP("davinci_gpio", DA830_MMCSD_WP_PIN, "wp",
214214
GPIO_ACTIVE_LOW),
215215
},
216216
};

arch/arm/mach-davinci/board-da850-evm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -805,9 +805,9 @@ static struct gpiod_lookup_table mmc_gpios_table = {
805805
.dev_id = "da830-mmc.0",
806806
.table = {
807807
/* gpio chip 2 contains gpio range 64-95 */
808-
GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_CD_PIN, "cd",
808+
GPIO_LOOKUP("davinci_gpio", DA850_MMCSD_CD_PIN, "cd",
809809
GPIO_ACTIVE_LOW),
810-
GPIO_LOOKUP("davinci_gpio.0", DA850_MMCSD_WP_PIN, "wp",
810+
GPIO_LOOKUP("davinci_gpio", DA850_MMCSD_WP_PIN, "wp",
811811
GPIO_ACTIVE_HIGH),
812812
},
813813
};

arch/arm/mach-davinci/board-dm355-evm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,9 +117,9 @@ static struct platform_device davinci_nand_device = {
117117
static struct gpiod_lookup_table i2c_recovery_gpiod_table = {
118118
.dev_id = "i2c_davinci.1",
119119
.table = {
120-
GPIO_LOOKUP("davinci_gpio.0", DM355_I2C_SDA_PIN, "sda",
120+
GPIO_LOOKUP("davinci_gpio", DM355_I2C_SDA_PIN, "sda",
121121
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
122-
GPIO_LOOKUP("davinci_gpio.0", DM355_I2C_SCL_PIN, "scl",
122+
GPIO_LOOKUP("davinci_gpio", DM355_I2C_SCL_PIN, "scl",
123123
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
124124
},
125125
};

arch/arm/mach-davinci/board-dm644x-evm.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -660,9 +660,9 @@ static struct i2c_board_info __initdata i2c_info[] = {
660660
static struct gpiod_lookup_table i2c_recovery_gpiod_table = {
661661
.dev_id = "i2c_davinci.1",
662662
.table = {
663-
GPIO_LOOKUP("davinci_gpio.0", DM644X_I2C_SDA_PIN, "sda",
663+
GPIO_LOOKUP("davinci_gpio", DM644X_I2C_SDA_PIN, "sda",
664664
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
665-
GPIO_LOOKUP("davinci_gpio.0", DM644X_I2C_SCL_PIN, "scl",
665+
GPIO_LOOKUP("davinci_gpio", DM644X_I2C_SCL_PIN, "scl",
666666
GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN),
667667
},
668668
};

arch/arm/mach-davinci/board-omapl138-hawk.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,9 @@ static const short hawk_mmcsd0_pins[] = {
134134
static struct gpiod_lookup_table mmc_gpios_table = {
135135
.dev_id = "da830-mmc.0",
136136
.table = {
137-
GPIO_LOOKUP("davinci_gpio.0", DA850_HAWK_MMCSD_CD_PIN, "cd",
137+
GPIO_LOOKUP("davinci_gpio", DA850_HAWK_MMCSD_CD_PIN, "cd",
138138
GPIO_ACTIVE_LOW),
139-
GPIO_LOOKUP("davinci_gpio.0", DA850_HAWK_MMCSD_WP_PIN, "wp",
139+
GPIO_LOOKUP("davinci_gpio", DA850_HAWK_MMCSD_WP_PIN, "wp",
140140
GPIO_ACTIVE_LOW),
141141
},
142142
};

arch/arm/mach-integrator/impd1.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -390,10 +390,14 @@ static int __ref impd1_probe(struct lm_device *dev)
390390
char *mmciname;
391391

392392
lookup = devm_kzalloc(&dev->dev,
393-
sizeof(*lookup) + 3 * sizeof(struct gpiod_lookup),
393+
struct_size(lookup, table, 3),
394394
GFP_KERNEL);
395395
chipname = devm_kstrdup(&dev->dev, devname, GFP_KERNEL);
396-
mmciname = kasprintf(GFP_KERNEL, "lm%x:00700", dev->id);
396+
mmciname = devm_kasprintf(&dev->dev, GFP_KERNEL,
397+
"lm%x:00700", dev->id);
398+
if (!lookup || !chipname || !mmciname)
399+
return -ENOMEM;
400+
397401
lookup->dev_id = mmciname;
398402
/*
399403
* Offsets on GPIO block 1:

arch/arm/mach-socfpga/socfpga.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ void __iomem *rst_manager_base_addr;
3232
void __iomem *sdr_ctl_base_addr;
3333
unsigned long socfpga_cpu1start_addr;
3434

35+
extern void __init socfpga_reset_init(void);
36+
3537
static void __init socfpga_sysmgr_init(void)
3638
{
3739
struct device_node *np;
@@ -64,6 +66,7 @@ static void __init socfpga_init_irq(void)
6466

6567
if (IS_ENABLED(CONFIG_EDAC_ALTERA_OCRAM))
6668
socfpga_init_ocram_ecc();
69+
socfpga_reset_init();
6770
}
6871

6972
static void __init socfpga_arria10_init_irq(void)
@@ -74,6 +77,7 @@ static void __init socfpga_arria10_init_irq(void)
7477
socfpga_init_arria10_l2_ecc();
7578
if (IS_ENABLED(CONFIG_EDAC_ALTERA_OCRAM))
7679
socfpga_init_arria10_ocram_ecc();
80+
socfpga_reset_init();
7781
}
7882

7983
static void socfpga_cyclone5_restart(enum reboot_mode mode, const char *cmd)

arch/arm64/boot/dts/marvell/armada-8040-mcbin.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@
183183
pinctrl-0 = <&cp0_pcie_pins>;
184184
num-lanes = <4>;
185185
num-viewport = <8>;
186-
reset-gpio = <&cp0_gpio1 20 GPIO_ACTIVE_LOW>;
186+
reset-gpios = <&cp0_gpio2 20 GPIO_ACTIVE_LOW>;
187187
status = "okay";
188188
};
189189

arch/arm64/boot/dts/marvell/armada-ap806.dtsi

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,23 @@
2828
method = "smc";
2929
};
3030

31+
reserved-memory {
32+
#address-cells = <2>;
33+
#size-cells = <2>;
34+
ranges;
35+
36+
/*
37+
* This area matches the mapping done with a
38+
* mainline U-Boot, and should be updated by the
39+
* bootloader.
40+
*/
41+
42+
psci-area@4000000 {
43+
reg = <0x0 0x4000000 0x0 0x200000>;
44+
no-map;
45+
};
46+
};
47+
3148
ap806 {
3249
#address-cells = <2>;
3350
#size-cells = <2>;

arch/arm64/configs/defconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,11 +506,15 @@ CONFIG_SND_SOC_ROCKCHIP=m
506506
CONFIG_SND_SOC_ROCKCHIP_SPDIF=m
507507
CONFIG_SND_SOC_ROCKCHIP_RT5645=m
508508
CONFIG_SND_SOC_RK3399_GRU_SOUND=m
509+
CONFIG_SND_MESON_AXG_SOUND_CARD=m
509510
CONFIG_SND_SOC_SAMSUNG=y
510511
CONFIG_SND_SOC_RCAR=m
511512
CONFIG_SND_SOC_AK4613=m
512513
CONFIG_SND_SIMPLE_CARD=m
513514
CONFIG_SND_AUDIO_GRAPH_CARD=m
515+
CONFIG_SND_SOC_ES7134=m
516+
CONFIG_SND_SOC_ES7241=m
517+
CONFIG_SND_SOC_TAS571X=m
514518
CONFIG_I2C_HID=m
515519
CONFIG_USB=y
516520
CONFIG_USB_OTG=y

drivers/reset/Kconfig

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ config RESET_QCOM_PDC
109109

110110
config RESET_SIMPLE
111111
bool "Simple Reset Controller Driver" if COMPILE_TEST
112-
default ARCH_SOCFPGA || ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || ARCH_ZX || ARCH_ASPEED
112+
default ARCH_STM32 || ARCH_STRATIX10 || ARCH_SUNXI || ARCH_ZX || ARCH_ASPEED
113113
help
114114
This enables a simple reset controller driver for reset lines that
115115
that can be asserted and deasserted by toggling bits in a contiguous,
@@ -128,6 +128,14 @@ config RESET_STM32MP157
128128
help
129129
This enables the RCC reset controller driver for STM32 MPUs.
130130

131+
config RESET_SOCFPGA
132+
bool "SoCFPGA Reset Driver" if COMPILE_TEST && !ARCH_SOCFPGA
133+
default ARCH_SOCFPGA
134+
select RESET_SIMPLE
135+
help
136+
This enables the reset driver for the SoCFPGA ARMv7 platforms. This
137+
driver gets initialized early during platform init calls.
138+
131139
config RESET_SUNXI
132140
bool "Allwinner SoCs Reset Driver" if COMPILE_TEST && !ARCH_SUNXI
133141
default ARCH_SUNXI
@@ -163,15 +171,15 @@ config RESET_UNIPHIER
163171
Say Y if you want to control reset signals provided by System Control
164172
block, Media I/O block, Peripheral Block.
165173

166-
config RESET_UNIPHIER_USB3
167-
tristate "USB3 reset driver for UniPhier SoCs"
174+
config RESET_UNIPHIER_GLUE
175+
tristate "Reset driver in glue layer for UniPhier SoCs"
168176
depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF
169177
default ARCH_UNIPHIER
170178
select RESET_SIMPLE
171179
help
172-
Support for the USB3 core reset on UniPhier SoCs.
173-
Say Y if you want to control reset signals provided by
174-
USB3 glue layer.
180+
Support for peripheral core reset included in its own glue layer
181+
on UniPhier SoCs. Say Y if you want to control reset signals
182+
provided by the glue layer.
175183

176184
config RESET_ZYNQ
177185
bool "ZYNQ Reset Driver" if COMPILE_TEST

drivers/reset/Makefile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,11 @@ obj-$(CONFIG_RESET_QCOM_AOSS) += reset-qcom-aoss.o
1919
obj-$(CONFIG_RESET_QCOM_PDC) += reset-qcom-pdc.o
2020
obj-$(CONFIG_RESET_SIMPLE) += reset-simple.o
2121
obj-$(CONFIG_RESET_STM32MP157) += reset-stm32mp1.o
22+
obj-$(CONFIG_RESET_SOCFPGA) += reset-socfpga.o
2223
obj-$(CONFIG_RESET_SUNXI) += reset-sunxi.o
2324
obj-$(CONFIG_RESET_TI_SCI) += reset-ti-sci.o
2425
obj-$(CONFIG_RESET_TI_SYSCON) += reset-ti-syscon.o
2526
obj-$(CONFIG_RESET_UNIPHIER) += reset-uniphier.o
26-
obj-$(CONFIG_RESET_UNIPHIER_USB3) += reset-uniphier-usb3.o
27+
obj-$(CONFIG_RESET_UNIPHIER_GLUE) += reset-uniphier-glue.o
2728
obj-$(CONFIG_RESET_ZYNQ) += reset-zynq.o
2829

0 commit comments

Comments
 (0)