interrupts = <0 17 0>, <0 16 0>;
                clocks = <&clock 21>;
                clock-names = "rtc";
-               status = "disabled";
+       };
+ 
+       sata@210000 {
+               compatible = "snps,exynos5440-ahci";
+               reg = <0x210000 0x10000>;
+               interrupts = <0 30 0>;
+               clocks = <&clock 23>;
+               clock-names = "sata";
+       };
+ 
+       ohci@220000 {
+               compatible = "samsung,exynos5440-ohci";
+               reg = <0x220000 0x1000>;
+               interrupts = <0 29 0>;
+               clocks = <&clock 24>;
+               clock-names = "usbhost";
+       };
+ 
+       ehci@221000 {
+               compatible = "samsung,exynos5440-ehci";
+               reg = <0x221000 0x1000>;
+               interrupts = <0 29 0>;
+               clocks = <&clock 24>;
+               clock-names = "usbhost";
        };
 +
 +      pcie@290000 {
 +              compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
 +              reg = <0x290000 0x1000
 +                      0x270000 0x1000
 +                      0x271000 0x40>;
 +              interrupts = <0 20 0>, <0 21 0>, <0 22 0>;
 +              clocks = <&clock 28>, <&clock 27>;
 +              clock-names = "pcie", "pcie_bus";
 +              #address-cells = <3>;
 +              #size-cells = <2>;
 +              device_type = "pci";
 +              ranges = <0x00000800 0 0x40000000 0x40000000 0 0x00001000   /* configuration space */
 +                        0x81000000 0 0          0x40001000 0 0x00010000   /* downstream I/O */
 +                        0x82000000 0 0x40011000 0x40011000 0 0x1ffef000>; /* non-prefetchable memory */
 +              #interrupt-cells = <1>;
 +              interrupt-map-mask = <0 0 0 0>;
 +              interrupt-map = <0x0 0 &gic 53>;
 +      };
 +
 +      pcie@2a0000 {
 +              compatible = "samsung,exynos5440-pcie", "snps,dw-pcie";
 +              reg = <0x2a0000 0x1000
 +                      0x272000 0x1000
 +                      0x271040 0x40>;
 +              interrupts = <0 23 0>, <0 24 0>, <0 25 0>;
 +              clocks = <&clock 29>, <&clock 27>;
 +              clock-names = "pcie", "pcie_bus";
 +              #address-cells = <3>;
 +              #size-cells = <2>;
 +              device_type = "pci";
 +              ranges = <0x00000800 0 0x60000000 0x60000000 0 0x00001000   /* configuration space */
 +                        0x81000000 0 0          0x60001000 0 0x00010000   /* downstream I/O */
 +                        0x82000000 0 0x60011000 0x60011000 0 0x1ffef000>; /* non-prefetchable memory */
 +              #interrupt-cells = <1>;
 +              interrupt-map-mask = <0 0 0 0>;
 +              interrupt-map = <0x0 0 &gic 56>;
 +      };
  };
 
                        };
                };
  
 +              pcie-controller {
 +                      compatible = "marvell,kirkwood-pcie";
 +                      status = "disabled";
 +                      device_type = "pci";
 +
 +                      #address-cells = <3>;
 +                      #size-cells = <2>;
 +
 +                      bus-range = <0x00 0xff>;
 +
 +                      ranges = <0x82000000 0 0x00040000 0x00040000 0 0x00002000   /* Port 0.0 registers */
 +                                0x82000000 0 0xe0000000 0xe0000000 0 0x08000000   /* non-prefetchable memory */
 +                                0x81000000 0 0          0xe8000000 0 0x00100000>; /* downstream I/O */
 +
 +                      pcie@1,0 {
 +                              device_type = "pci";
 +                              assigned-addresses = <0x82000800 0 0x00040000 0 0x2000>;
 +                              reg = <0x0800 0 0 0 0>;
 +                              #address-cells = <3>;
 +                              #size-cells = <2>;
 +                              #interrupt-cells = <1>;
 +                              ranges;
 +                              interrupt-map-mask = <0 0 0 0>;
 +                              interrupt-map = <0 0 0 0 &intc 9>;
 +                              marvell,pcie-port = <0>;
 +                              marvell,pcie-lane = <0>;
 +                              clocks = <&gate_clk 2>;
 +                              status = "disabled";
 +                      };
 +              };
++
+               rtc@10300 {
+                       compatible = "marvell,kirkwood-rtc", "marvell,orion-rtc";
+                       reg = <0x10300 0x20>;
+                       interrupts = <53>;
+                       clocks = <&gate_clk 7>;
+               };
+ 
+               sata@80000 {
+                       compatible = "marvell,orion-sata";
+                       reg = <0x80000 0x5000>;
+                       interrupts = <21>;
+                       clocks = <&gate_clk 14>, <&gate_clk 15>;
+                       clock-names = "0", "1";
+                       status = "disabled";
+               };
+ 
+               mvsdio@90000 {
+                       compatible = "marvell,orion-sdio";
+                       reg = <0x90000 0x200>;
+                       interrupts = <28>;
+                       clocks = <&gate_clk 4>;
+                       bus-width = <4>;
+                       cap-sdio-irq;
+                       cap-sd-highspeed;
+                       cap-mmc-highspeed;
+                       status = "disabled";
+               };
        };
  };
 
  
  DEFINE_STRUCT_CLK(wdt1_fck, wdt_ck_parents, gpio_fck_ops);
  
 +static const char *pwmss_clk_parents[] = {
 +      "dpll_per_m2_ck",
 +};
 +
 +static const struct clk_ops ehrpwm_tbclk_ops = {
 +      .enable         = &omap2_dflt_clk_enable,
 +      .disable        = &omap2_dflt_clk_disable,
 +};
 +
 +DEFINE_CLK_OMAP_MUX_GATE(ehrpwm0_tbclk, "l4ls_clkdm",
 +                       NULL, NULL, 0,
 +                       AM33XX_CTRL_REGADDR(AM33XX_PWMSS_TBCLK_CLKCTRL),
 +                       AM33XX_PWMSS0_TBCLKEN_SHIFT,
 +                       NULL, pwmss_clk_parents, ehrpwm_tbclk_ops);
 +
 +DEFINE_CLK_OMAP_MUX_GATE(ehrpwm1_tbclk, "l4ls_clkdm",
 +                       NULL, NULL, 0,
 +                       AM33XX_CTRL_REGADDR(AM33XX_PWMSS_TBCLK_CLKCTRL),
 +                       AM33XX_PWMSS1_TBCLKEN_SHIFT,
 +                       NULL, pwmss_clk_parents, ehrpwm_tbclk_ops);
 +
 +DEFINE_CLK_OMAP_MUX_GATE(ehrpwm2_tbclk, "l4ls_clkdm",
 +                       NULL, NULL, 0,
 +                       AM33XX_CTRL_REGADDR(AM33XX_PWMSS_TBCLK_CLKCTRL),
 +                       AM33XX_PWMSS2_TBCLKEN_SHIFT,
 +                       NULL, pwmss_clk_parents, ehrpwm_tbclk_ops);
 +
+ /*
+  * debugss optional clocks
+  */
+ DEFINE_CLK_GATE(dbg_sysclk_ck, "sys_clkin_ck", &sys_clkin_ck,
+               0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+               AM33XX_OPTFCLKEN_DBGSYSCLK_SHIFT, 0x0, NULL);
+ 
+ DEFINE_CLK_GATE(dbg_clka_ck, "dpll_core_m4_ck", &dpll_core_m4_ck,
+               0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+               AM33XX_OPTCLK_DEBUG_CLKA_SHIFT, 0x0, NULL);
+ 
+ static const char *stm_pmd_clock_mux_ck_parents[] = {
+       "dbg_sysclk_ck", "dbg_clka_ck",
+ };
+ 
+ DEFINE_CLK_MUX(stm_pmd_clock_mux_ck, stm_pmd_clock_mux_ck_parents, NULL, 0x0,
+              AM33XX_CM_WKUP_DEBUGSS_CLKCTRL, AM33XX_STM_PMD_CLKSEL_SHIFT,
+              AM33XX_STM_PMD_CLKSEL_WIDTH, 0x0, NULL);
+ 
+ DEFINE_CLK_MUX(trace_pmd_clk_mux_ck, stm_pmd_clock_mux_ck_parents, NULL, 0x0,
+              AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+              AM33XX_TRC_PMD_CLKSEL_SHIFT,
+              AM33XX_TRC_PMD_CLKSEL_WIDTH, 0x0, NULL);
+ 
+ DEFINE_CLK_DIVIDER(stm_clk_div_ck, "stm_pmd_clock_mux_ck",
+                  &stm_pmd_clock_mux_ck, 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+                  AM33XX_STM_PMD_CLKDIVSEL_SHIFT,
+                  AM33XX_STM_PMD_CLKDIVSEL_WIDTH, CLK_DIVIDER_POWER_OF_TWO,
+                  NULL);
+ 
+ DEFINE_CLK_DIVIDER(trace_clk_div_ck, "trace_pmd_clk_mux_ck",
+                  &trace_pmd_clk_mux_ck, 0x0, AM33XX_CM_WKUP_DEBUGSS_CLKCTRL,
+                  AM33XX_TRC_PMD_CLKDIVSEL_SHIFT,
+                  AM33XX_TRC_PMD_CLKDIVSEL_WIDTH, CLK_DIVIDER_POWER_OF_TWO,
+                  NULL);
+ 
  /*
   * clkdev
   */
        CLK(NULL,       "clkout2_div_ck",       &clkout2_div_ck),
        CLK(NULL,       "timer_32k_ck",         &clkdiv32k_ick),
        CLK(NULL,       "timer_sys_ck",         &sys_clkin_ck),
+       CLK(NULL,       "dbg_sysclk_ck",        &dbg_sysclk_ck),
+       CLK(NULL,       "dbg_clka_ck",          &dbg_clka_ck),
+       CLK(NULL,       "stm_pmd_clock_mux_ck", &stm_pmd_clock_mux_ck),
+       CLK(NULL,       "trace_pmd_clk_mux_ck", &trace_pmd_clk_mux_ck),
+       CLK(NULL,       "stm_clk_div_ck",       &stm_clk_div_ck),
+       CLK(NULL,       "trace_clk_div_ck",     &trace_clk_div_ck),
+       CLK(NULL,       "clkout2_ck",           &clkout2_ck),
 +      CLK("48300200.ehrpwm",  "tbclk",        &ehrpwm0_tbclk),
 +      CLK("48302200.ehrpwm",  "tbclk",        &ehrpwm1_tbclk),
 +      CLK("48304200.ehrpwm",  "tbclk",        &ehrpwm2_tbclk),
  };