Skip to content

Commit dc64f48

Browse files
committed
arm-soc: Amlogic fixes for v5.5-rc * tag 'amlogic-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: arm64: dts: meson-sm1-sei610: add gpio bluetooth interrupt dt-bindings: reset: meson8b: fix duplicate reset IDs soc: amlogic: meson-ee-pwrc: propagate errors from pm_genpd_init() soc: amlogic: meson-ee-pwrc: propagate PD provider registration errors ARM: dts: meson8: fix the size of the PMU registers arm64: dts: meson-sm1-sei610: gpio-keys: switch to IRQs Link: https://lore.kernel.org/r/7hmuaweavi.fsf@baylibre.com Signed-off-by: Olof Johansson <olof@lixom.net>
2 parents 9f1c2cb + 30388cc commit dc64f48

4 files changed

Lines changed: 45 additions & 15 deletions

File tree

arch/arm/boot/dts/meson8.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@
253253
&aobus {
254254
pmu: pmu@e0 {
255255
compatible = "amlogic,meson8-pmu", "syscon";
256-
reg = <0xe0 0x8>;
256+
reg = <0xe0 0x18>;
257257
};
258258

259259
pinctrl_aobus: pinctrl@84 {

arch/arm64/boot/dts/amlogic/meson-sm1-sei610.dts

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,25 +46,47 @@
4646
};
4747

4848
gpio-keys {
49-
compatible = "gpio-keys-polled";
50-
poll-interval = <100>;
49+
compatible = "gpio-keys";
5150

5251
key1 {
5352
label = "A";
5453
linux,code = <BTN_0>;
5554
gpios = <&gpio GPIOH_6 GPIO_ACTIVE_LOW>;
55+
interrupt-parent = <&gpio_intc>;
56+
interrupts = <34 IRQ_TYPE_EDGE_BOTH>;
5657
};
5758

5859
key2 {
5960
label = "B";
6061
linux,code = <BTN_1>;
6162
gpios = <&gpio GPIOH_7 GPIO_ACTIVE_LOW>;
63+
interrupt-parent = <&gpio_intc>;
64+
interrupts = <35 IRQ_TYPE_EDGE_BOTH>;
6265
};
6366

6467
key3 {
6568
label = "C";
6669
linux,code = <BTN_2>;
6770
gpios = <&gpio_ao GPIOAO_2 GPIO_ACTIVE_LOW>;
71+
interrupt-parent = <&gpio_intc>;
72+
interrupts = <2 IRQ_TYPE_EDGE_BOTH>;
73+
};
74+
75+
mic_mute {
76+
label = "MicMute";
77+
linux,code = <SW_MUTE_DEVICE>;
78+
linux,input-type = <EV_SW>;
79+
gpios = <&gpio_ao GPIOE_2 GPIO_ACTIVE_LOW>;
80+
interrupt-parent = <&gpio_intc>;
81+
interrupts = <99 IRQ_TYPE_EDGE_BOTH>;
82+
};
83+
84+
power_key {
85+
label = "PowerKey";
86+
linux,code = <KEY_POWER>;
87+
gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_LOW>;
88+
interrupt-parent = <&gpio_intc>;
89+
interrupts = <3 IRQ_TYPE_EDGE_BOTH>;
6890
};
6991
};
7092

@@ -569,6 +591,8 @@
569591

570592
bluetooth {
571593
compatible = "brcm,bcm43438-bt";
594+
interrupt-parent = <&gpio_intc>;
595+
interrupts = <95 IRQ_TYPE_LEVEL_HIGH>;
572596
shutdown-gpios = <&gpio GPIOX_17 GPIO_ACTIVE_HIGH>;
573597
max-speed = <2000000>;
574598
clocks = <&wifi32k>;

drivers/soc/amlogic/meson-ee-pwrc.c

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,8 @@ static int meson_ee_pwrc_init_domain(struct platform_device *pdev,
323323
struct meson_ee_pwrc *pwrc,
324324
struct meson_ee_pwrc_domain *dom)
325325
{
326+
int ret;
327+
326328
dom->pwrc = pwrc;
327329
dom->num_rstc = dom->desc.reset_names_count;
328330
dom->num_clks = dom->desc.clk_names_count;
@@ -368,15 +370,21 @@ static int meson_ee_pwrc_init_domain(struct platform_device *pdev,
368370
* prepare/enable counters won't be in sync.
369371
*/
370372
if (dom->num_clks && dom->desc.get_power && !dom->desc.get_power(dom)) {
371-
int ret = clk_bulk_prepare_enable(dom->num_clks, dom->clks);
373+
ret = clk_bulk_prepare_enable(dom->num_clks, dom->clks);
372374
if (ret)
373375
return ret;
374376

375-
pm_genpd_init(&dom->base, &pm_domain_always_on_gov, false);
376-
} else
377-
pm_genpd_init(&dom->base, NULL,
378-
(dom->desc.get_power ?
379-
dom->desc.get_power(dom) : true));
377+
ret = pm_genpd_init(&dom->base, &pm_domain_always_on_gov,
378+
false);
379+
if (ret)
380+
return ret;
381+
} else {
382+
ret = pm_genpd_init(&dom->base, NULL,
383+
(dom->desc.get_power ?
384+
dom->desc.get_power(dom) : true));
385+
if (ret)
386+
return ret;
387+
}
380388

381389
return 0;
382390
}
@@ -441,9 +449,7 @@ static int meson_ee_pwrc_probe(struct platform_device *pdev)
441449
pwrc->xlate.domains[i] = &dom->base;
442450
}
443451

444-
of_genpd_add_provider_onecell(pdev->dev.of_node, &pwrc->xlate);
445-
446-
return 0;
452+
return of_genpd_add_provider_onecell(pdev->dev.of_node, &pwrc->xlate);
447453
}
448454

449455
static void meson_ee_pwrc_shutdown(struct platform_device *pdev)

include/dt-bindings/reset/amlogic,meson8b-reset.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646
#define RESET_VD_RMEM 64
4747
#define RESET_AUDIN 65
4848
#define RESET_DBLK 66
49-
#define RESET_PIC_DC 66
50-
#define RESET_PSC 66
51-
#define RESET_NAND 66
49+
#define RESET_PIC_DC 67
50+
#define RESET_PSC 68
51+
#define RESET_NAND 69
5252
#define RESET_GE2D 70
5353
#define RESET_PARSER_REG 71
5454
#define RESET_PARSER_FETCH 72

0 commit comments

Comments
 (0)