]> 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

1  2 
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/pdata-quirks.c

index 579cca498fd30f4a6c924f6ccc3aaef9a48ed817,8e80d979db2d696c1e283117a7c0cbabb10c6eef..9e96d60976b77a2b80056ec05cf6d75068a146fa
@@@ -16,7 -16,6 +16,7 @@@
        interrupt-parent = <&intc>;
        #address-cells = <1>;
        #size-cells = <1>;
 +      chosen { };
  
        aliases {
                i2c0 = &i2c0;
                                };
  
                                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>;
                        cpdma_channels = <8>;
                        ale_entries = <1024>;
                        bd_ram_size = <0x2000>;
 -                      no_bd_ram = <0>;
                        mac_control = <0x20>;
                        slaves = <2>;
                        active_slave = <0>;
index 5986ea3a90b08b545cea505710a2d35f38eb0656,da423c72bac0cafbdb99a008915004846dc46159..9708157f5daf6f7c84a76e521aae8d27e5684d68
@@@ -12,7 -12,6 +12,7 @@@
        interrupt-parent = <&intc>;
        #address-cells = <1>;
        #size-cells = <1>;
 +      chosen { };
  
        aliases {
                i2c0 = &i2c1;
                        };
  
                        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>;
                        cpdma_channels = <8>;
                        ale_entries = <1024>;
                        bd_ram_size = <0x2000>;
 -                      no_bd_ram = <0>;
                        mac_control = <0x20>;
                        slaves = <2>;
                        active_slave = <0>;
index 6db652ae9bd558021ac99a6a8bcb954a5c94b806,621c211a436cf96136e5279df6d2195b7dd46d52..276211e1ee533af0fe345047ab6d006a785f84a8
@@@ -12,7 -12,6 +12,7 @@@
        interrupt-parent = <&intc>;
        #address-cells = <1>;
        #size-cells = <1>;
 +      chosen { };
  
        aliases {
                i2c0 = &i2c1;
                };
  
                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,07d36fc1e33ce6a610255e2bc8554abff1cac017..7475f02ffea550ab08e64b3e81de72c406dff7e7
@@@ -319,16 -319,6 +319,16 @@@ static struct clk emac_clk = 
        .gpsc           = 1,
  };
  
 +/*
 + * In order to avoid adding the emac_clk to the clock lookup table twice (and
 + * screwing up the linked list in the process) create a separate clock for
 + * mdio inheriting the rate from emac_clk.
 + */
 +static struct clk mdio_clk = {
 +      .name           = "mdio",
 +      .parent         = &emac_clk,
 +};
 +
  static struct clk mcasp_clk = {
        .name           = "mcasp",
        .parent         = &async3_clk,
@@@ -377,16 -367,6 +377,16 @@@ static struct clk aemif_clk = 
        .flags          = ALWAYS_ENABLED,
  };
  
 +/*
 + * In order to avoid adding the aemif_clk to the clock lookup table twice (and
 + * screwing up the linked list in the process) create a separate clock for
 + * nand inheriting the rate from aemif_clk.
 + */
 +static struct clk aemif_nand_clk = {
 +      .name           = "nand",
 +      .parent         = &aemif_clk,
 +};
 +
  static struct clk usb11_clk = {
        .name           = "usb11",
        .parent         = &pll0_sysclk4,
@@@ -549,7 -529,7 +549,7 @@@ static struct clk_lookup da850_clks[] 
        CLK(NULL,               "arm",          &arm_clk),
        CLK(NULL,               "rmii",         &rmii_clk),
        CLK("davinci_emac.1",   NULL,           &emac_clk),
 -      CLK("davinci_mdio.0",   "fck",          &emac_clk),
 +      CLK("davinci_mdio.0",   "fck",          &mdio_clk),
        CLK("davinci-mcasp.0",  NULL,           &mcasp_clk),
        CLK("davinci-mcbsp.0",  NULL,           &mcbsp0_clk),
        CLK("davinci-mcbsp.1",  NULL,           &mcbsp1_clk),
        CLK("da830-mmc.0",      NULL,           &mmcsd0_clk),
        CLK("da830-mmc.1",      NULL,           &mmcsd1_clk),
        CLK("ti-aemif",         NULL,           &aemif_clk),
 -      CLK(NULL,               "aemif",        &aemif_clk),
 +      CLK("davinci-nand.0",   "aemif",        &aemif_nand_clk),
        CLK("ohci-da8xx",       "usb11",        &usb11_clk),
        CLK("musb-da8xx",       "usb20",        &usb20_clk),
        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 -1174,28 +1194,28 @@@ static int da850_set_armrate(struct cl
        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 67498aad2654f39698c1dbb244a1aded8d321e84,58d87a78cb90f8618fe1548db77982df5e7c61f5..9700a8ef0f1676bafe1405bddbc25b2076df4e05
@@@ -161,7 -161,7 +161,7 @@@ static struct ti_st_plat_data wilink7_p
        .nshutdown_gpio = 162,
        .dev_name = "/dev/ttyO1",
        .flow_cntrl = 1,
 -      .baud_rate = 300000,
 +      .baud_rate = 3000000,
  };
  
  static struct platform_device wl128x_device = {
@@@ -484,15 -484,15 +484,15 @@@ static struct pwm_omap_dmtimer_pdata pw
  };
  #endif
  
 -static struct lirc_rx51_platform_data __maybe_unused rx51_lirc_data = {
 +static struct ir_rx51_platform_data __maybe_unused rx51_ir_data = {
        .set_max_mpu_wakeup_lat = omap_pm_set_max_mpu_wakeup_lat,
  };
  
 -static struct platform_device __maybe_unused rx51_lirc_device = {
 -      .name           = "lirc_rx51",
 +static struct platform_device __maybe_unused rx51_ir_device = {
 +      .name           = "ir_rx51",
        .id             = -1,
        .dev            = {
 -              .platform_data = &rx51_lirc_data,
 +              .platform_data = &rx51_ir_data,
        },
  };
  
@@@ -533,7 -533,7 +533,7 @@@ static struct of_dev_auxdata omap_auxda
                       &omap3_iommu_pdata),
        OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x4809c000, "4809c000.mmc", &mmc_pdata[0]),
        OF_DEV_AUXDATA("ti,omap3-hsmmc", 0x480b4000, "480b4000.mmc", &mmc_pdata[1]),
 -      OF_DEV_AUXDATA("nokia,n900-ir", 0, "n900-ir", &rx51_lirc_data),
 +      OF_DEV_AUXDATA("nokia,n900-ir", 0, "n900-ir", &rx51_ir_data),
        /* Only on am3517 */
        OF_DEV_AUXDATA("ti,davinci_mdio", 0x5c030000, "davinci_mdio.0", NULL),
        OF_DEV_AUXDATA("ti,am3517-emac", 0x5c000000, "davinci_emac.0",
@@@ -599,7 -599,6 +599,6 @@@ static void pdata_quirks_check(struct p
                if (of_machine_is_compatible(quirks->compatible)) {
                        if (quirks->fn)
                                quirks->fn();
-                       break;
                }
                quirks++;
        }