Skip to content

Commit b32c6e0

Browse files
committed
Merge tag 'arm-soc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc
Pull ARM SoC updates from Arnd Bergmann: "The majority of the changes are for the OMAP2 platform, mostly removing some dead code that got left behind from previous cleanups. Aside from that, there are very minor updates and correctness fixes for Zynq, i.MX, Samsung, Broadcom, AT91, ep93xx, and OMAP1" * tag 'arm-soc-6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (26 commits) dt-bindings: soc: samsung: exynos-pmu: allow phys as child ARM: imx: mach-imx6ul: add imx6ulz support ARM: imx: Call ida_simple_remove() for ida_simple_get arm64: drop redundant "ARMv8" from Kconfig option title ARM: ep93xx: Convert to use descriptors for GPIO LEDs ARM: s3c: fix s3c64xx_set_timer_source prototype ARM: OMAP2+: Fix spelling typos in comment ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/machine.h> ARM: OMAP2+: Remove unneeded #include <linux/pinctrl/pinmux.h> ARM: OMAP1: call platform_device_put() in error case in omap1_dm_timer_init() ARM: BCM63xx: remove useless goto statement ARM: omap2: make functions static ARM: omap2: remove unused omap2_pm_init ARM: omap2: remove unused declarations ARM: omap2: remove unused functions ARM: omap2: smartreflex: remove on_init control ARM: omap2: remove APLL control ARM: omap2: simplify clock2xxx header ARM: omap2: remove unused omap_hwmod_reset.c ARM: omap2: remove unused headers ...
2 parents ff0c7e1 + 27aaad0 commit b32c6e0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+155
-1578
lines changed

Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml

Lines changed: 57 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,28 @@ select:
3131

3232
properties:
3333
compatible:
34-
items:
35-
- enum:
36-
- samsung,exynos3250-pmu
37-
- samsung,exynos4210-pmu
38-
- samsung,exynos4412-pmu
39-
- samsung,exynos5250-pmu
40-
- samsung,exynos5260-pmu
41-
- samsung,exynos5410-pmu
42-
- samsung,exynos5420-pmu
43-
- samsung,exynos5433-pmu
44-
- samsung,exynos7-pmu
45-
- samsung,exynos850-pmu
46-
- samsung-s5pv210-pmu
47-
- const: syscon
34+
oneOf:
35+
- items:
36+
- enum:
37+
- samsung,exynos3250-pmu
38+
- samsung,exynos4210-pmu
39+
- samsung,exynos4412-pmu
40+
- samsung,exynos5250-pmu
41+
- samsung,exynos5260-pmu
42+
- samsung,exynos5410-pmu
43+
- samsung,exynos5420-pmu
44+
- samsung,exynos5433-pmu
45+
- samsung,exynos7-pmu
46+
- samsung,exynos850-pmu
47+
- samsung-s5pv210-pmu
48+
- const: syscon
49+
- items:
50+
- enum:
51+
- samsung,exynos5250-pmu
52+
- samsung,exynos5420-pmu
53+
- samsung,exynos5433-pmu
54+
- const: simple-mfd
55+
- const: syscon
4856

4957
reg:
5058
maxItems: 1
@@ -64,6 +72,10 @@ properties:
6472
minItems: 1
6573
maxItems: 32
6674

75+
dp-phy:
76+
$ref: /schemas/phy/samsung,dp-video-phy.yaml
77+
unevaluatedProperties: false
78+
6779
interrupt-controller:
6880
description:
6981
Some PMUs are capable of behaving as an interrupt controller (mostly
@@ -74,6 +86,10 @@ properties:
7486
Must be identical to the that of the parent interrupt controller.
7587
const: 3
7688

89+
mipi-phy:
90+
$ref: /schemas/phy/samsung,mipi-video-phy.yaml
91+
unevaluatedProperties: false
92+
7793
reboot-mode:
7894
$ref: /schemas/power/reset/syscon-reboot-mode.yaml
7995
type: object
@@ -117,6 +133,23 @@ allOf:
117133
- clock-names
118134
- clocks
119135

136+
- if:
137+
properties:
138+
compatible:
139+
contains:
140+
enum:
141+
- samsung,exynos5250-pmu
142+
- samsung,exynos5420-pmu
143+
- samsung,exynos5433-pmu
144+
then:
145+
properties:
146+
dp-phy: true
147+
mipi-phy: true
148+
else:
149+
properties:
150+
dp-phy: false
151+
mipi-phy: false
152+
120153
examples:
121154
- |
122155
#include <dt-bindings/clock/exynos5250.h>
@@ -130,4 +163,14 @@ examples:
130163
#clock-cells = <1>;
131164
clock-names = "clkout16";
132165
clocks = <&clock CLK_FIN_PLL>;
166+
167+
dp-phy {
168+
compatible = "samsung,exynos5250-dp-video-phy";
169+
#phy-cells = <0>;
170+
};
171+
172+
mipi-phy {
173+
compatible = "samsung,s5pv210-mipi-video-phy";
174+
#phy-cells = <1>;
175+
};
133176
};

arch/arm/mach-bcm/bcm63xx_smp.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,8 +142,7 @@ static int bcm63138_smp_boot_secondary(unsigned int cpu,
142142
*/
143143
ret = bcm63xx_pmb_power_on_cpu(dn);
144144
of_node_put(dn);
145-
if (ret)
146-
goto out;
145+
147146
out:
148147
iounmap(bootlut_base);
149148

arch/arm/mach-ep93xx/core.c

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,10 +426,8 @@ void __init ep93xx_register_spi(struct ep93xx_spi_info *info,
426426
static const struct gpio_led ep93xx_led_pins[] __initconst = {
427427
{
428428
.name = "platform:grled",
429-
.gpio = EP93XX_GPIO_LINE_GRLED,
430429
}, {
431430
.name = "platform:rdled",
432-
.gpio = EP93XX_GPIO_LINE_RDLED,
433431
},
434432
};
435433

@@ -438,6 +436,16 @@ static const struct gpio_led_platform_data ep93xx_led_data __initconst = {
438436
.leds = ep93xx_led_pins,
439437
};
440438

439+
static struct gpiod_lookup_table ep93xx_leds_gpio_table = {
440+
.dev_id = "leds-gpio",
441+
.table = {
442+
/* Use local offsets on gpiochip/port "E" */
443+
GPIO_LOOKUP_IDX("E", 0, NULL, 0, GPIO_ACTIVE_HIGH),
444+
GPIO_LOOKUP_IDX("E", 1, NULL, 1, GPIO_ACTIVE_HIGH),
445+
{ }
446+
},
447+
};
448+
441449
/*************************************************************************
442450
* EP93xx pwm peripheral handling
443451
*************************************************************************/
@@ -990,6 +998,7 @@ struct device __init *ep93xx_init_devices(void)
990998
platform_device_register(&ep93xx_ohci_device);
991999
platform_device_register(&ep93xx_wdt_device);
9921000

1001+
gpiod_add_lookup_table(&ep93xx_leds_gpio_table);
9931002
gpio_led_register_device(-1, &ep93xx_led_data);
9941003

9951004
return parent;

arch/arm/mach-imx/mach-imx6ul.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ static void __init imx6ul_init_late(void)
6363
static const char * const imx6ul_dt_compat[] __initconst = {
6464
"fsl,imx6ul",
6565
"fsl,imx6ull",
66+
"fsl,imx6ulz",
6667
NULL,
6768
};
6869

arch/arm/mach-imx/mmdc.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ struct mmdc_pmu {
9999
cpumask_t cpu;
100100
struct hrtimer hrtimer;
101101
unsigned int active_events;
102+
int id;
102103
struct device *dev;
103104
struct perf_event *mmdc_events[MMDC_NUM_COUNTERS];
104105
struct hlist_node node;
@@ -433,8 +434,6 @@ static enum hrtimer_restart mmdc_pmu_timer_handler(struct hrtimer *hrtimer)
433434
static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
434435
void __iomem *mmdc_base, struct device *dev)
435436
{
436-
int mmdc_num;
437-
438437
*pmu_mmdc = (struct mmdc_pmu) {
439438
.pmu = (struct pmu) {
440439
.task_ctx_nr = perf_invalid_context,
@@ -452,15 +451,16 @@ static int mmdc_pmu_init(struct mmdc_pmu *pmu_mmdc,
452451
.active_events = 0,
453452
};
454453

455-
mmdc_num = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
454+
pmu_mmdc->id = ida_simple_get(&mmdc_ida, 0, 0, GFP_KERNEL);
456455

457-
return mmdc_num;
456+
return pmu_mmdc->id;
458457
}
459458

460459
static int imx_mmdc_remove(struct platform_device *pdev)
461460
{
462461
struct mmdc_pmu *pmu_mmdc = platform_get_drvdata(pdev);
463462

463+
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
464464
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
465465
perf_pmu_unregister(&pmu_mmdc->pmu);
466466
iounmap(pmu_mmdc->mmdc_base);
@@ -474,7 +474,6 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
474474
{
475475
struct mmdc_pmu *pmu_mmdc;
476476
char *name;
477-
int mmdc_num;
478477
int ret;
479478
const struct of_device_id *of_id =
480479
of_match_device(imx_mmdc_dt_ids, &pdev->dev);
@@ -497,14 +496,14 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
497496
cpuhp_mmdc_state = ret;
498497
}
499498

500-
mmdc_num = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
501-
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
502-
if (mmdc_num == 0)
503-
name = "mmdc";
504-
else
505-
name = devm_kasprintf(&pdev->dev,
506-
GFP_KERNEL, "mmdc%d", mmdc_num);
499+
ret = mmdc_pmu_init(pmu_mmdc, mmdc_base, &pdev->dev);
500+
if (ret < 0)
501+
goto pmu_free;
507502

503+
name = devm_kasprintf(&pdev->dev,
504+
GFP_KERNEL, "mmdc%d", ret);
505+
506+
pmu_mmdc->mmdc_ipg_clk = mmdc_ipg_clk;
508507
pmu_mmdc->devtype_data = (struct fsl_mmdc_devtype_data *)of_id->data;
509508

510509
hrtimer_init(&pmu_mmdc->hrtimer, CLOCK_MONOTONIC,
@@ -525,6 +524,7 @@ static int imx_mmdc_perf_init(struct platform_device *pdev, void __iomem *mmdc_b
525524

526525
pmu_register_err:
527526
pr_warn("MMDC Perf PMU failed (%d), disabled\n", ret);
527+
ida_simple_remove(&mmdc_ida, pmu_mmdc->id);
528528
cpuhp_state_remove_instance_nocalls(cpuhp_mmdc_state, &pmu_mmdc->node);
529529
hrtimer_cancel(&pmu_mmdc->hrtimer);
530530
pmu_free:

arch/arm/mach-omap1/timer.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ static int __init omap1_dm_timer_init(void)
158158
kfree(pdata);
159159

160160
err_free_pdev:
161-
platform_device_unregister(pdev);
161+
platform_device_put(pdev);
162162

163163
return ret;
164164
}

arch/arm/mach-omap2/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
obj-y := id.o io.o control.o devices.o fb.o pm.o \
88
common.o dma.o omap-headsmp.o sram.o
99

10-
hwmod-common = omap_hwmod.o omap_hwmod_reset.o \
10+
hwmod-common = omap_hwmod.o \
1111
omap_hwmod_common_data.o \
1212
omap_hwmod_common_ipblock_data.o \
1313
omap_device.o display.o hdq1w.o \
@@ -80,7 +80,6 @@ obj-$(CONFIG_ARCH_OMAP4) += $(omap-4-5-pm-common)
8080
obj-$(CONFIG_SOC_OMAP5) += $(omap-4-5-pm-common)
8181

8282
ifeq ($(CONFIG_PM),y)
83-
obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o
8483
obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o
8584
obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o
8685
omap-4-5-pm-common += pm44xx.o

arch/arm/mach-omap2/board-n8x0.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ static void __init n8x0_mmc_init(void)
504504
}
505505
#else
506506
static struct omap_mmc_platform_data mmc1_data;
507-
void __init n8x0_mmc_init(void)
507+
static void __init n8x0_mmc_init(void)
508508
{
509509
}
510510
#endif /* CONFIG_MMC_OMAP */

arch/arm/mach-omap2/clkt2xxx_dpllcore.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <linux/kernel.h>
2121
#include <linux/errno.h>
2222
#include <linux/clk.h>
23+
#include <linux/clk/ti.h>
2324
#include <linux/io.h>
2425

2526
#include "clock.h"

arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#include "sdrc.h"
4040
#include "sram.h"
4141

42+
static u16 cpu_mask;
43+
4244
const struct prcm_config *curr_prcm_set;
4345
const struct prcm_config *rate_table;
4446

@@ -55,7 +57,7 @@ static unsigned long sys_ck_rate;
5557
*
5658
* Set virt_prcm_set's rate to the mpu_speed field of the current PRCM set.
5759
*/
58-
unsigned long omap2_table_mpu_recalc(struct clk_hw *clk,
60+
static unsigned long omap2_table_mpu_recalc(struct clk_hw *clk,
5961
unsigned long parent_rate)
6062
{
6163
return curr_prcm_set->mpu_speed;
@@ -68,7 +70,7 @@ unsigned long omap2_table_mpu_recalc(struct clk_hw *clk,
6870
* Some might argue L3-DDR, others ARM, others IVA. This code is simple and
6971
* just uses the ARM rates.
7072
*/
71-
long omap2_round_to_table_rate(struct clk_hw *hw, unsigned long rate,
73+
static long omap2_round_to_table_rate(struct clk_hw *hw, unsigned long rate,
7274
unsigned long *parent_rate)
7375
{
7476
const struct prcm_config *ptr;
@@ -92,8 +94,8 @@ long omap2_round_to_table_rate(struct clk_hw *hw, unsigned long rate,
9294
}
9395

9496
/* Sets basic clocks based on the specified rate */
95-
int omap2_select_table_rate(struct clk_hw *hw, unsigned long rate,
96-
unsigned long parent_rate)
97+
static int omap2_select_table_rate(struct clk_hw *hw, unsigned long rate,
98+
unsigned long parent_rate)
9799
{
98100
u32 cur_rate, done_rate, bypass = 0;
99101
const struct prcm_config *prcm;
@@ -167,7 +169,7 @@ int omap2_select_table_rate(struct clk_hw *hw, unsigned long rate,
167169
* global to point to the active rate set when found; otherwise, sets
168170
* it to NULL. No return value;
169171
*/
170-
void omap2xxx_clkt_vps_check_bootloader_rates(void)
172+
static void omap2xxx_clkt_vps_check_bootloader_rates(void)
171173
{
172174
const struct prcm_config *prcm = NULL;
173175
unsigned long rate;
@@ -193,7 +195,7 @@ void omap2xxx_clkt_vps_check_bootloader_rates(void)
193195
* sys_ck rate, but before the virt_prcm_set clock rate is
194196
* recalculated. No return value.
195197
*/
196-
void omap2xxx_clkt_vps_late_init(void)
198+
static void omap2xxx_clkt_vps_late_init(void)
197199
{
198200
struct clk *c;
199201

0 commit comments

Comments
 (0)