Commit b583cef5 authored by Olof Johansson's avatar Olof Johansson

Merge tag 'omap-for-v5.5/fixes-rc5' of...

Merge tag 'omap-for-v5.5/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/fixes

Fixes for omaps for v5.5-rc cycle

Here are few fixes for v5.5-rc cycle:

- Two corner case fixes related to ti-sysc driver clock issues

- Fixes for am57xx dts for pcie gpios

- Beagle-x15 regulator dts fix

- Fix for wkup_m3_ipc driver race

* tag 'omap-for-v5.5/fixes-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap:
  soc: ti: wkup_m3_ipc: Fix race condition with rproc_boot
  ARM: dts: beagle-x15-common: Model 5V0 regulator
  ARM: dts: am571x-idk: Fix gpios property to have the correct  gpio number
  ARM: dts: am57xx-beagle-x15/am57xx-idk: Remove "gpios" for  endpoint dt nodes
  bus: ti-sysc: Fix iterating over clocks
  ARM: OMAP2+: Fix ti_sysc_find_one_clockdomain to check for to_clk_hw_omap

Link: https://lore.kernel.org/r/pull-1578418121-413328@atomide.comSigned-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 850e0a99 03729cfa
...@@ -167,11 +167,7 @@ mbox_ipu2_ipc3x: mbox_ipu2_ipc3x { ...@@ -167,11 +167,7 @@ mbox_ipu2_ipc3x: mbox_ipu2_ipc3x {
&pcie1_rc { &pcie1_rc {
status = "okay"; status = "okay";
gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; gpios = <&gpio5 18 GPIO_ACTIVE_HIGH>;
};
&pcie1_ep {
gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
}; };
&mmc1 { &mmc1 {
......
...@@ -147,10 +147,6 @@ &pcie1_rc { ...@@ -147,10 +147,6 @@ &pcie1_rc {
gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>; gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
}; };
&pcie1_ep {
gpios = <&gpio3 23 GPIO_ACTIVE_HIGH>;
};
&mailbox5 { &mailbox5 {
status = "okay"; status = "okay";
mbox_ipu1_ipc3x: mbox_ipu1_ipc3x { mbox_ipu1_ipc3x: mbox_ipu1_ipc3x {
......
...@@ -29,6 +29,27 @@ memory@0 { ...@@ -29,6 +29,27 @@ memory@0 {
reg = <0x0 0x80000000 0x0 0x80000000>; reg = <0x0 0x80000000 0x0 0x80000000>;
}; };
main_12v0: fixedregulator-main_12v0 {
/* main supply */
compatible = "regulator-fixed";
regulator-name = "main_12v0";
regulator-min-microvolt = <12000000>;
regulator-max-microvolt = <12000000>;
regulator-always-on;
regulator-boot-on;
};
evm_5v0: fixedregulator-evm_5v0 {
/* Output of TPS54531D */
compatible = "regulator-fixed";
regulator-name = "evm_5v0";
regulator-min-microvolt = <5000000>;
regulator-max-microvolt = <5000000>;
vin-supply = <&main_12v0>;
regulator-always-on;
regulator-boot-on;
};
vdd_3v3: fixedregulator-vdd_3v3 { vdd_3v3: fixedregulator-vdd_3v3 {
compatible = "regulator-fixed"; compatible = "regulator-fixed";
regulator-name = "vdd_3v3"; regulator-name = "vdd_3v3";
...@@ -547,10 +568,6 @@ &pcie1_rc { ...@@ -547,10 +568,6 @@ &pcie1_rc {
gpios = <&gpio2 8 GPIO_ACTIVE_LOW>; gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
}; };
&pcie1_ep {
gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
};
&mcasp3 { &mcasp3 {
#sound-dai-cells = <0>; #sound-dai-cells = <0>;
assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>; assigned-clocks = <&l4per2_clkctrl DRA7_L4PER2_MCASP3_CLKCTRL 24>;
......
...@@ -306,10 +306,14 @@ static void __init dra7x_evm_mmc_quirk(void) ...@@ -306,10 +306,14 @@ static void __init dra7x_evm_mmc_quirk(void)
static struct clockdomain *ti_sysc_find_one_clockdomain(struct clk *clk) static struct clockdomain *ti_sysc_find_one_clockdomain(struct clk *clk)
{ {
struct clk_hw *hw = __clk_get_hw(clk);
struct clockdomain *clkdm = NULL; struct clockdomain *clkdm = NULL;
struct clk_hw_omap *hwclk; struct clk_hw_omap *hwclk;
hwclk = to_clk_hw_omap(__clk_get_hw(clk)); hwclk = to_clk_hw_omap(hw);
if (!omap2_clk_is_hw_omap(hw))
return NULL;
if (hwclk && hwclk->clkdm_name) if (hwclk && hwclk->clkdm_name)
clkdm = clkdm_lookup(hwclk->clkdm_name); clkdm = clkdm_lookup(hwclk->clkdm_name);
......
...@@ -343,6 +343,12 @@ static int sysc_get_clocks(struct sysc *ddata) ...@@ -343,6 +343,12 @@ static int sysc_get_clocks(struct sysc *ddata)
return -EINVAL; return -EINVAL;
} }
/* Always add a slot for main clocks fck and ick even if unused */
if (!nr_fck)
ddata->nr_clocks++;
if (!nr_ick)
ddata->nr_clocks++;
ddata->clocks = devm_kcalloc(ddata->dev, ddata->clocks = devm_kcalloc(ddata->dev,
ddata->nr_clocks, sizeof(*ddata->clocks), ddata->nr_clocks, sizeof(*ddata->clocks),
GFP_KERNEL); GFP_KERNEL);
...@@ -421,7 +427,7 @@ static int sysc_enable_opt_clocks(struct sysc *ddata) ...@@ -421,7 +427,7 @@ static int sysc_enable_opt_clocks(struct sysc *ddata)
struct clk *clock; struct clk *clock;
int i, error; int i, error;
if (!ddata->clocks) if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
return 0; return 0;
for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) { for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
...@@ -455,7 +461,7 @@ static void sysc_disable_opt_clocks(struct sysc *ddata) ...@@ -455,7 +461,7 @@ static void sysc_disable_opt_clocks(struct sysc *ddata)
struct clk *clock; struct clk *clock;
int i; int i;
if (!ddata->clocks) if (!ddata->clocks || ddata->nr_clocks < SYSC_OPTFCK0 + 1)
return; return;
for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) { for (i = SYSC_OPTFCK0; i < SYSC_MAX_CLOCKS; i++) {
......
...@@ -419,6 +419,8 @@ static void wkup_m3_rproc_boot_thread(struct wkup_m3_ipc *m3_ipc) ...@@ -419,6 +419,8 @@ static void wkup_m3_rproc_boot_thread(struct wkup_m3_ipc *m3_ipc)
ret = rproc_boot(m3_ipc->rproc); ret = rproc_boot(m3_ipc->rproc);
if (ret) if (ret)
dev_err(dev, "rproc_boot failed\n"); dev_err(dev, "rproc_boot failed\n");
else
m3_ipc_state = m3_ipc;
do_exit(0); do_exit(0);
} }
...@@ -505,8 +507,6 @@ static int wkup_m3_ipc_probe(struct platform_device *pdev) ...@@ -505,8 +507,6 @@ static int wkup_m3_ipc_probe(struct platform_device *pdev)
goto err_put_rproc; goto err_put_rproc;
} }
m3_ipc_state = m3_ipc;
return 0; return 0;
err_put_rproc: err_put_rproc:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment