]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
Merge tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm...
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 23:28:04 +0000 (15:28 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 23 Feb 2017 23:28:04 +0000 (15:28 -0800)
Pull ARM SoC non-urgent fixes from Arnd Bergmann:
 "We sometimes collect non-critical fixes that come in during the later
  part of the merge window in a branch for the next release instead, and
  this is that contents for v4.11.

  Most of these are OMAP fixes, dealing with OMAP36/37 detection, quirks
  and setup. There's also some fixes for Davinci and a Kconfig fix for
  SCPI to only enable on ARM{,64}"

* tag 'armsoc-fixes-nc' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
  firmware: arm_scpi: Add hardware dependencies
  ARM: OMAP3: Fix SoC detection of OMAP36/37 Family
  ARM: OMAP5: Add HWMOD_SWSUP_SIDLE_ACT flag for UART
  ARM: dts: Fix compatible for ti81xx uarts for 8250
  ARM: dts: Fix am335x and dm814x scm syscon to probe children
  ARM: OMAP2+: Fix init for multiple quirks for the same SoC
  ARM: dts: Fix omap3 off mode pull defines
  bus: da850-mstpri: fix my e-mail address
  ARM: davinci: da850: fix da850_set_pll0rate()
  ARM: davinci: da850: coding style fix

arch/arm/boot/dts/am33xx.dtsi
arch/arm/boot/dts/dm814x.dtsi
arch/arm/boot/dts/dm816x.dtsi
arch/arm/mach-davinci/da850.c
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/omap_hwmod_54xx_data.c
arch/arm/mach-omap2/pdata-quirks.c
drivers/bus/da8xx-mstpri.c
drivers/cpufreq/davinci-cpufreq.c
drivers/firmware/Kconfig
include/dt-bindings/pinctrl/omap.h

index 579cca498fd30f4a6c924f6ccc3aaef9a48ed817..9e96d60976b77a2b80056ec05cf6d75068a146fa 100644 (file)
                                };
 
                                scm_conf: scm_conf@0 {
-                                       compatible = "syscon";
+                                       compatible = "syscon", "simple-bus";
                                        reg = <0x0 0x800>;
                                        #address-cells = <1>;
                                        #size-cells = <1>;
+                                       ranges = <0 0 0x800>;
 
                                        scm_clocks: clocks {
                                                #address-cells = <1>;
index 5986ea3a90b08b545cea505710a2d35f38eb0656..9708157f5daf6f7c84a76e521aae8d27e5684d68 100644 (file)
                        };
 
                        uart1: uart@20000 {
-                               compatible = "ti,omap3-uart";
+                               compatible = "ti,am3352-uart", "ti,omap3-uart";
                                ti,hwmods = "uart1";
                                reg = <0x20000 0x2000>;
                                clock-frequency = <48000000>;
                        };
 
                        uart2: uart@22000 {
-                               compatible = "ti,omap3-uart";
+                               compatible = "ti,am3352-uart", "ti,omap3-uart";
                                ti,hwmods = "uart2";
                                reg = <0x22000 0x2000>;
                                clock-frequency = <48000000>;
                        };
 
                        uart3: uart@24000 {
-                               compatible = "ti,omap3-uart";
+                               compatible = "ti,am3352-uart", "ti,omap3-uart";
                                ti,hwmods = "uart3";
                                reg = <0x24000 0x2000>;
                                clock-frequency = <48000000>;
                                ranges = <0 0x140000 0x20000>;
 
                                scm_conf: scm_conf@0 {
-                                       compatible = "syscon";
+                                       compatible = "syscon", "simple-bus";
                                        reg = <0x0 0x800>;
                                        #address-cells = <1>;
                                        #size-cells = <1>;
+                                       ranges = <0 0 0x800>;
 
                                        scm_clocks: clocks {
                                                #address-cells = <1>;
index 6db652ae9bd558021ac99a6a8bcb954a5c94b806..276211e1ee533af0fe345047ab6d006a785f84a8 100644 (file)
                };
 
                uart1: uart@48020000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart1";
                        reg = <0x48020000 0x2000>;
                        clock-frequency = <48000000>;
                };
 
                uart2: uart@48022000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart2";
                        reg = <0x48022000 0x2000>;
                        clock-frequency = <48000000>;
                };
 
                uart3: uart@48024000 {
-                       compatible = "ti,omap3-uart";
+                       compatible = "ti,am3352-uart", "ti,omap3-uart";
                        ti,hwmods = "uart3";
                        reg = <0x48024000 0x2000>;
                        clock-frequency = <48000000>;
index 9780829f8a0572219bae198715036c4d878a5af8..7475f02ffea550ab08e64b3e81de72c406dff7e7 100644 (file)
@@ -563,7 +563,7 @@ static struct clk_lookup da850_clks[] = {
        CLK("spi_davinci.0",    NULL,           &spi0_clk),
        CLK("spi_davinci.1",    NULL,           &spi1_clk),
        CLK("vpif",             NULL,           &vpif_clk),
-       CLK("ahci_da850",               NULL,           &sata_clk),
+       CLK("ahci_da850",       NULL,           &sata_clk),
        CLK("davinci-rproc.0",  NULL,           &dsp_clk),
        CLK(NULL,               NULL,           &ehrpwm_clk),
        CLK("ehrpwm.0",         "fck",          &ehrpwm0_clk),
@@ -1194,14 +1194,28 @@ static int da850_set_armrate(struct clk *clk, unsigned long index)
        return clk_set_rate(pllclk, index);
 }
 
-static int da850_set_pll0rate(struct clk *clk, unsigned long index)
+static int da850_set_pll0rate(struct clk *clk, unsigned long rate)
 {
-       unsigned int prediv, mult, postdiv;
-       struct da850_opp *opp;
        struct pll_data *pll = clk->pll_data;
+       struct cpufreq_frequency_table *freq;
+       unsigned int prediv, mult, postdiv;
+       struct da850_opp *opp = NULL;
        int ret;
 
-       opp = (struct da850_opp *) cpufreq_info.freq_table[index].driver_data;
+       rate /= 1000;
+
+       for (freq = da850_freq_table;
+            freq->frequency != CPUFREQ_TABLE_END; freq++) {
+               /* rate is in Hz, freq->frequency is in KHz */
+               if (freq->frequency == rate) {
+                       opp = (struct da850_opp *)freq->driver_data;
+                       break;
+               }
+       }
+
+       if (!opp)
+               return -EINVAL;
+
        prediv = opp->prediv;
        mult = opp->mult;
        postdiv = opp->postdiv;
index cc6d9fa609242e2cb4660db80de5092b95ddd636..e2274a162b74d688d56a4a6b67823db04345179d 100644 (file)
@@ -223,7 +223,15 @@ static void __init omap3_cpuinfo(void)
         * and CPU class bits.
         */
        if (soc_is_omap3630()) {
-               cpu_name = "OMAP3630";
+               if (omap3_has_iva() && omap3_has_sgx()) {
+                       cpu_name = (omap3_has_isp()) ? "OMAP3630/DM3730" : "OMAP3621";
+               } else if (omap3_has_iva()) {
+                       cpu_name = "DM3725";
+               } else if (omap3_has_sgx()) {
+                       cpu_name = "OMAP3615/AM3715";
+               } else {
+                       cpu_name = (omap3_has_isp()) ? "AM3703" : "OMAP3611";
+               }
        } else if (soc_is_am35xx()) {
                cpu_name = (omap3_has_sgx()) ? "AM3517" : "AM3505";
        } else if (soc_is_ti816x()) {
index 8cdfd9b7ab4f9ac33a9759ff5c491b19418c95a9..a2d763a4cc575f1e599266255d368af3b712aafa 100644 (file)
@@ -1748,6 +1748,7 @@ static struct omap_hwmod omap54xx_uart1_hwmod = {
        .name           = "uart1",
        .class          = &omap54xx_uart_hwmod_class,
        .clkdm_name     = "l4per_clkdm",
+       .flags          = HWMOD_SWSUP_SIDLE_ACT,
        .main_clk       = "func_48m_fclk",
        .prcm = {
                .omap4 = {
@@ -1763,6 +1764,7 @@ static struct omap_hwmod omap54xx_uart2_hwmod = {
        .name           = "uart2",
        .class          = &omap54xx_uart_hwmod_class,
        .clkdm_name     = "l4per_clkdm",
+       .flags          = HWMOD_SWSUP_SIDLE_ACT,
        .main_clk       = "func_48m_fclk",
        .prcm = {
                .omap4 = {
@@ -1778,7 +1780,7 @@ static struct omap_hwmod omap54xx_uart3_hwmod = {
        .name           = "uart3",
        .class          = &omap54xx_uart_hwmod_class,
        .clkdm_name     = "l4per_clkdm",
-       .flags          = DEBUG_OMAP4UART3_FLAGS,
+       .flags          = DEBUG_OMAP4UART3_FLAGS | HWMOD_SWSUP_SIDLE_ACT,
        .main_clk       = "func_48m_fclk",
        .prcm = {
                .omap4 = {
@@ -1794,7 +1796,7 @@ static struct omap_hwmod omap54xx_uart4_hwmod = {
        .name           = "uart4",
        .class          = &omap54xx_uart_hwmod_class,
        .clkdm_name     = "l4per_clkdm",
-       .flags          = DEBUG_OMAP4UART4_FLAGS,
+       .flags          = DEBUG_OMAP4UART4_FLAGS | HWMOD_SWSUP_SIDLE_ACT,
        .main_clk       = "func_48m_fclk",
        .prcm = {
                .omap4 = {
@@ -1810,6 +1812,7 @@ static struct omap_hwmod omap54xx_uart5_hwmod = {
        .name           = "uart5",
        .class          = &omap54xx_uart_hwmod_class,
        .clkdm_name     = "l4per_clkdm",
+       .flags          = HWMOD_SWSUP_SIDLE_ACT,
        .main_clk       = "func_48m_fclk",
        .prcm = {
                .omap4 = {
@@ -1825,6 +1828,7 @@ static struct omap_hwmod omap54xx_uart6_hwmod = {
        .name           = "uart6",
        .class          = &omap54xx_uart_hwmod_class,
        .clkdm_name     = "l4per_clkdm",
+       .flags          = HWMOD_SWSUP_SIDLE_ACT,
        .main_clk       = "func_48m_fclk",
        .prcm = {
                .omap4 = {
index 67498aad2654f39698c1dbb244a1aded8d321e84..9700a8ef0f1676bafe1405bddbc25b2076df4e05 100644 (file)
@@ -599,7 +599,6 @@ static void pdata_quirks_check(struct pdata_init *quirks)
                if (of_machine_is_compatible(quirks->compatible)) {
                        if (quirks->fn)
                                quirks->fn();
-                       break;
                }
                quirks++;
        }
index 063397f2c0db9946e1b145bf41a6d6a64547a461..9af9bcc68059e9c50ea3aaba71817e51b9f35a15 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright (C) 2016 BayLibre SAS
  *
  * Author:
- *   Bartosz Golaszewski <bgolaszewski@baylibre.com.com>
+ *   Bartosz Golaszewski <bgolaszewski@baylibre.com>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
index b95a872800ecf0de6377cfb1b9e7481d2b673465..d54a27c9912188f472705ade364574e63a90780e 100644 (file)
@@ -55,7 +55,7 @@ static int davinci_target(struct cpufreq_policy *policy, unsigned int idx)
                        return ret;
        }
 
-       ret = clk_set_rate(armclk, idx);
+       ret = clk_set_rate(armclk, new_freq * 1000);
        if (ret)
                return ret;
 
index 1867f0d1389b2679b68a63c554bc6b12a2367ee6..6e4ed5a9c6fdcc8af788cc809407e0cef2e45fff 100644 (file)
@@ -21,6 +21,7 @@ config ARM_PSCI_CHECKER
 
 config ARM_SCPI_PROTOCOL
        tristate "ARM System Control and Power Interface (SCPI) Message Protocol"
+       depends on ARM || ARM64 || COMPILE_TEST
        depends on MAILBOX
        help
          System Control and Power Interface (SCPI) Message Protocol is
index effadd05695bda61001375128f1743ed7af256e2..fbd6f7202476be21cac02ee0b7105d8439e62a4b 100644 (file)
@@ -45,8 +45,8 @@
 #define PIN_OFF_NONE           0
 #define PIN_OFF_OUTPUT_HIGH    (OFF_EN | OFFOUT_EN | OFFOUT_VAL)
 #define PIN_OFF_OUTPUT_LOW     (OFF_EN | OFFOUT_EN)
-#define PIN_OFF_INPUT_PULLUP   (OFF_EN | OFF_PULL_EN | OFF_PULL_UP)
-#define PIN_OFF_INPUT_PULLDOWN (OFF_EN | OFF_PULL_EN)
+#define PIN_OFF_INPUT_PULLUP   (OFF_EN | OFFOUT_EN | OFF_PULL_EN | OFF_PULL_UP)
+#define PIN_OFF_INPUT_PULLDOWN (OFF_EN | OFFOUT_EN | OFF_PULL_EN)
 #define PIN_OFF_WAKEUPENABLE   WAKEUP_EN
 
 /*