]> Git Repo - linux.git/commitdiff
Merge tag 'fbdev-omap-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba...
authorLinus Torvalds <[email protected]>
Mon, 7 Apr 2014 17:47:51 +0000 (10:47 -0700)
committerLinus Torvalds <[email protected]>
Mon, 7 Apr 2014 17:47:51 +0000 (10:47 -0700)
Pull OMAP fbdev changes from Tomi Valkeinen:
 "This is based on the already pulled fbdev-main changes, and this also
  merges .dts branch from Tony Lindgren (which has also been pulled), so
  that I was able to add the display related .dts changes.

  This contains OMAP related fbdev changes for 3.15.  The bulk of the
  patches are for adding Device Tree support for OMAP Display Subsystem:

   - SoCs: OMAP2/3/4

   - Boards: OMAP4 Panda, OMAP4 SDP, OMAP3 Beagle, OMAP3 Beagle-xM,
     OMAP3 IGEP0020, OMAP3 N900

   - Devices: TFP410 Encoder, tpd12s015 HDMI companion chip, Sony
     acx565akm panel, MIPI DSI Command mode panel and HDMI, DVI and
     Analog TV connectors"

* tag 'fbdev-omap-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux: (45 commits)
  OMAPDSS: HDMI: fix interlace output
  OMAPDSS: add missing __init for dss_init_ports
  ARM: OMAP2+: remove pdata quirks for displays
  OMAPDSS: remove DT hacks for regulators
  Doc/DT: Add DT binding documentation for tpd12s015 encoder
  Doc/DT: Add DT binding documentation for TFP410 encoder
  Doc/DT: Add DT binding documentation for Sony acx565akm panel
  Doc/DT: Add DT binding documentation for MIPI DSI CM Panel
  Doc/DT: Add DT binding documentation for HDMI Connector
  Doc/DT: Add DT binding documentation for DVI Connector
  Doc/DT: Add DT binding documentation for Analog TV Connector
  ARM: omap3-n900.dts: add display information
  ARM: omap3-igep0020.dts: add display information
  ARM: omap3-beagle-xm.dts: add display information
  ARM: omap3-beagle.dts: add display information
  ARM: omap4-sdp.dts: add display information
  Doc/DT: Add DT binding documentation for OMAP DSS
  OMAPDSS: acx565akm: Add DT support
  OMAPDSS: connector-analog-tv: Add DT support
  OMAPDSS: hdmi-connector: Add DT support
  ...

1  2 
arch/arm/boot/dts/omap3-igep0020.dts
arch/arm/boot/dts/omap4.dtsi
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/pdata-quirks.c

index f2779ac75872a4a44e2d03402fab7b6fe1a4b66b,8aa4ded8ce0324a3ed6e9f7dbd55f94d4253d215..7abd64f6ae21465c9ac74b22563f8f828a5d684b
@@@ -14,7 -14,7 +14,7 @@@
  
  / {
        model = "IGEPv2 (TI OMAP AM/DM37x)";
 -      compatible = "isee,omap3-igep0020", "ti,omap3";
 +      compatible = "isee,omap3-igep0020", "ti,omap36xx", "ti,omap3";
  
        leds {
                pinctrl-names = "default";
                reset-gpios = <&gpio1 24 GPIO_ACTIVE_LOW>; /* gpio_24 */
                vcc-supply = <&hsusb1_power>;
        };
+       tfp410: encoder@0 {
+               compatible = "ti,tfp410";
+               powerdown-gpios = <&gpio6 10 GPIO_ACTIVE_LOW>; /* gpio_170 */
+               ports {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       port@0 {
+                               reg = <0>;
+                               tfp410_in: endpoint@0 {
+                                       remote-endpoint = <&dpi_out>;
+                               };
+                       };
+                       port@1 {
+                               reg = <1>;
+                               tfp410_out: endpoint@0 {
+                                       remote-endpoint = <&dvi_connector_in>;
+                               };
+                       };
+               };
+       };
+       dvi0: connector@0 {
+               compatible = "dvi-connector";
+               label = "dvi";
+               digital;
+               ddc-i2c-bus = <&i2c3>;
+               port {
+                       dvi_connector_in: endpoint {
+                               remote-endpoint = <&tfp410_out>;
+                       };
+               };
+       };
  };
  
  &omap3_pmx_core {
        pinctrl-names = "default";
        pinctrl-0 = <
                &tfp410_pins
-               &dss_pins
+               &dss_dpi_pins
        >;
  
-       tfp410_pins: tfp410_dvi_pins {
+       tfp410_pins: pinmux_tfp410_pins {
                pinctrl-single,pins = <
                        0x196 (PIN_OUTPUT | MUX_MODE4)   /* hdq_sio.gpio_170 */
                >;
        };
  
-       dss_pins: pinmux_dss_dvi_pins {
+       dss_dpi_pins: pinmux_dss_dpi_pins {
                pinctrl-single,pins = <
                        0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* dss_pclk.dss_pclk */
                        0x0a6 (PIN_OUTPUT | MUX_MODE0)   /* dss_hsync.dss_hsync */
          /* Needed for DSS */
          regulator-name = "vdds_dsi";
  };
+ &dss {
+       status = "ok";
+       port {
+               dpi_out: endpoint {
+                       remote-endpoint = <&tfp410_in>;
+                       data-lines = <24>;
+               };
+       };
+ };
index 0769ec57a3f5d224ec3d761375725642f1b805d9,4db99db0bffaa2a54674a94fbc0562fe2ef655a6..2b4c1cbbce3351e1cb6b9711307bc684242c7718
                        gpmc,num-waitpins = <4>;
                        ti,hwmods = "gpmc";
                        ti,no-idle-on-init;
 +                      clocks = <&l3_div_ck>;
 +                      clock-names = "fck";
                };
  
                uart1: serial@4806a000 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges;
 +                      clocks = <&init_60m_fclk>,
 +                               <&xclk60mhsp1_ck>,
 +                               <&xclk60mhsp2_ck>;
 +                      clock-names = "refclk_60m_int",
 +                                    "refclk_60m_ext_p1",
 +                                    "refclk_60m_ext_p2";
  
                        usbhsohci: ohci@4a064800 {
                                compatible = "ti,ohci-omap3";
  
                        status = "disabled";
                };
+               dss: dss@58000000 {
+                       compatible = "ti,omap4-dss";
+                       reg = <0x58000000 0x80>;
+                       status = "disabled";
+                       ti,hwmods = "dss_core";
+                       clocks = <&dss_dss_clk>;
+                       clock-names = "fck";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges;
+                       dispc@58001000 {
+                               compatible = "ti,omap4-dispc";
+                               reg = <0x58001000 0x1000>;
+                               interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
+                               ti,hwmods = "dss_dispc";
+                               clocks = <&dss_dss_clk>;
+                               clock-names = "fck";
+                       };
+                       rfbi: encoder@58002000  {
+                               compatible = "ti,omap4-rfbi";
+                               reg = <0x58002000 0x1000>;
+                               status = "disabled";
+                               ti,hwmods = "dss_rfbi";
+                               clocks = <&dss_dss_clk>, <&dss_fck>;
+                               clock-names = "fck", "ick";
+                       };
+                       venc: encoder@58003000 {
+                               compatible = "ti,omap4-venc";
+                               reg = <0x58003000 0x1000>;
+                               status = "disabled";
+                               ti,hwmods = "dss_venc";
+                               clocks = <&dss_tv_clk>;
+                               clock-names = "fck";
+                       };
+                       dsi1: encoder@58004000 {
+                               compatible = "ti,omap4-dsi";
+                               reg = <0x58004000 0x200>,
+                                     <0x58004200 0x40>,
+                                     <0x58004300 0x20>;
+                               reg-names = "proto", "phy", "pll";
+                               interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                               ti,hwmods = "dss_dsi1";
+                               clocks = <&dss_dss_clk>, <&dss_sys_clk>;
+                               clock-names = "fck", "sys_clk";
+                       };
+                       dsi2: encoder@58005000 {
+                               compatible = "ti,omap4-dsi";
+                               reg = <0x58005000 0x200>,
+                                     <0x58005200 0x40>,
+                                     <0x58005300 0x20>;
+                               reg-names = "proto", "phy", "pll";
+                               interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                               ti,hwmods = "dss_dsi2";
+                               clocks = <&dss_dss_clk>, <&dss_sys_clk>;
+                               clock-names = "fck", "sys_clk";
+                       };
+                       hdmi: encoder@58006000 {
+                               compatible = "ti,omap4-hdmi";
+                               reg = <0x58006000 0x200>,
+                                     <0x58006200 0x100>,
+                                     <0x58006300 0x100>,
+                                     <0x58006400 0x1000>;
+                               reg-names = "wp", "pll", "phy", "core";
+                               interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
+                               status = "disabled";
+                               ti,hwmods = "dss_hdmi";
+                               clocks = <&dss_48mhz_clk>, <&dss_sys_clk>;
+                               clock-names = "fck", "sys_clk";
+                       };
+               };
        };
  };
  
index bc6013fbb7732682c1426a19922bc6ef86281082,0db371a88e5ecef7c6cc26639db4f7950bb8651e..b8920b6bc104f21f42dfda19d0ac63dd9db713f6
@@@ -35,7 -35,11 +35,11 @@@ static struct of_device_id omap_dt_matc
  
  static void __init omap_generic_init(void)
  {
+       omapdss_early_init_of();
        pdata_quirks_init(omap_dt_match_table);
+       omapdss_init_of();
  }
  
  #ifdef CONFIG_SOC_OMAP2420
@@@ -229,9 -233,8 +233,9 @@@ DT_MACHINE_START(AM43_DT, "Generic AM4
        .init_late      = am43xx_init_late,
        .init_irq       = omap_gic_of_init,
        .init_machine   = omap_generic_init,
 -      .init_time      = omap3_sync32k_timer_init,
 +      .init_time      = omap3_gptimer_timer_init,
        .dt_compat      = am43_boards_compat,
 +      .restart        = omap44xx_restart,
  MACHINE_END
  #endif
  
index b04c5f0fc2788372eded0cff24f15a0626d3d2c2,b67f987bd09421c3f816ab4f4ce23e48abfef794..c3b73351cb7af37343c7ada35c6e43c581fd04fc
@@@ -24,8 -24,6 +24,8 @@@
  #include "dss-common.h"
  #include "control.h"
  #include "omap_device.h"
 +#include "omap-secure.h"
 +#include "soc.h"
  
  struct pdata_init {
        const char *compatible;
@@@ -141,7 -139,6 +141,6 @@@ static void __init omap3_sbc_t3530_lega
  
  static void __init omap3_igep0020_legacy_init(void)
  {
-       omap3_igep2_display_init_of();
  }
  
  static void __init omap3_evm_legacy_init(void)
@@@ -226,35 -223,17 +225,33 @@@ static void __init am3517_evm_legacy_in
  {
        am35xx_emac_reset();
  }
 +
 +static void __init nokia_n900_legacy_init(void)
 +{
 +      hsmmc2_internal_input_clk();
 +
 +      if (omap_type() == OMAP2_DEVICE_TYPE_SEC) {
 +              if (IS_ENABLED(CONFIG_ARM_ERRATA_430973)) {
 +                      pr_info("RX-51: Enabling ARM errata 430973 workaround\n");
 +                      /* set IBE to 1 */
 +                      rx51_secure_update_aux_cr(BIT(6), 0);
 +              } else {
 +                      pr_warning("RX-51: Not enabling ARM errata 430973 workaround\n");
 +                      pr_warning("Thumb binaries may crash randomly without this workaround\n");
 +              }
 +      }
 +}
  #endif /* CONFIG_ARCH_OMAP3 */
  
  #ifdef CONFIG_ARCH_OMAP4
  static void __init omap4_sdp_legacy_init(void)
  {
-       omap_4430sdp_display_init_of();
        legacy_init_wl12xx(WL12XX_REFCLOCK_26,
                           WL12XX_TCXOCLOCK_26, 53);
  }
  
  static void __init omap4_panda_legacy_init(void)
  {
-       omap4_panda_display_init_of();
        legacy_init_wl12xx(WL12XX_REFCLOCK_38, 0, 53);
  }
  #endif
@@@ -325,7 -304,6 +322,7 @@@ struct of_dev_auxdata omap_auxdata_look
  #endif
  #ifdef CONFIG_ARCH_OMAP3
        OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002030, "48002030.pinmux", &pcs_pdata),
 +      OF_DEV_AUXDATA("ti,omap3-padconf", 0x480025a0, "480025a0.pinmux", &pcs_pdata),
        OF_DEV_AUXDATA("ti,omap3-padconf", 0x48002a00, "48002a00.pinmux", &pcs_pdata),
        OF_DEV_AUXDATA("ti,omap2-iommu", 0x5d000000, "5d000000.mmu",
                       &omap3_iommu_pdata),
@@@ -356,7 -334,7 +353,7 @@@ static struct pdata_init pdata_quirks[
        { "compulab,omap3-sbc-t3517", omap3_sbc_t3517_legacy_init, },
        { "compulab,omap3-sbc-t3530", omap3_sbc_t3530_legacy_init, },
        { "compulab,omap3-sbc-t3730", omap3_sbc_t3730_legacy_init, },
 -      { "nokia,omap3-n900", hsmmc2_internal_input_clk, },
 +      { "nokia,omap3-n900", nokia_n900_legacy_init, },
        { "nokia,omap3-n9", hsmmc2_internal_input_clk, },
        { "nokia,omap3-n950", hsmmc2_internal_input_clk, },
        { "isee,omap3-igep0020", omap3_igep0020_legacy_init, },
This page took 0.09354 seconds and 4 git commands to generate.