--- /dev/null
+/*
+ * Copyright 2012 ST-Ericsson
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#include "ste-nomadik-pinctrl.dtsi"
+
+/ {
+       soc {
+               pinctrl {
+                       uart0 {
+                               uart0_default_mux: uart0_mux {
+                                       default_mux {
+                                               ste,function = "u0";
+                                               ste,pins = "u0_a_1";
+                                       };
+                               };
+
+                               uart0_default_mode: uart0_default {
+                                       default_cfg1 {
+                                               ste,pins = "GPIO0", "GPIO2";
+                                               ste,config = <&in_pu>;
+                                       };
+
+                                       default_cfg2 {
+                                               ste,pins = "GPIO1", "GPIO3";
+                                               ste,config = <&out_hi>;
+                                       };
+                               };
+
+                               uart0_sleep_mode: uart0_sleep {
+                                       sleep_cfg1 {
+                                               ste,pins = "GPIO0", "GPIO2";
+                                               ste,config = <&slpm_in_pu>;
+                                       };
+
+                                       sleep_cfg2 {
+                                               ste,pins = "GPIO1", "GPIO3";
+                                               ste,config = <&slpm_out_hi>;
+                                       };
+                               };
+                       };
+
+                       uart2 {
+                               uart2_default_mode: uart2_default {
+                                       default_mux {
+                                               ste,function = "u2";
+                                               ste,pins = "u2txrx_a_1";
+                                       };
+
+                                       default_cfg1 {
+                                               ste,pins = "GPIO120";
+                                               ste,config = <&in_pu>;
+                                       };
+
+                                       default_cfg2 {
+                                               ste,pins = "GPIO121";
+                                               ste,config = <&out_hi>;
+                                       };
+                               };
+
+                               uart2_sleep_mode: uart2_sleep {
+                                       sleep_cfg1 {
+                                               ste,pins = "GPIO120";
+                                               ste,config = <&slpm_in_pu>;
+                                       };
+
+                                       sleep_cfg2 {
+                                               ste,pins = "GPIO121";
+                                               ste,config = <&slpm_out_hi>;
+                                       };
+                               };
+                       };
+               };
+       };
+};
 
 
 /dts-v1/;
 #include "dbx5x0.dtsi"
+#include "ccu8540-pinctrl.dtsi"
 
 / {
        model = "ST-Ericsson U8540 platform with Device Tree";
        };
 
        soc {
+               pinctrl {
+                       compatible = "stericsson,db8540-pinctrl";
+               };
+
                prcmu@80157000 {
                        reg = <0x80157000 0x2000>, <0x801b0000 0x8000>, <0x801b8000 0x3000>;
                        reg-names = "prcmu", "prcmu-tcpm", "prcmu-tcdm";
                };
 
                uart@80120000 {
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>;
+                       pinctrl-1 = <&uart0_sleep_mode>;
                        status = "okay";
                };
 
                };
 
                uart@80007000 {
+                       pinctrl-names = "default", "sleep";
+                       pinctrl-0 = <&uart2_default_mode>;
+                       pinctrl-1 = <&uart2_sleep_mode>;
                        status = "okay";
                };
        };
 
--- /dev/null
+/*
+ * Copyright 2012 ST-Ericsson
+ *
+ * The code contained herein is licensed under the GNU General Public
+ * License. You may obtain a copy of the GNU General Public License
+ * Version 2 or later at the following locations:
+ *
+ * http://www.opensource.org/licenses/gpl-license.html
+ * http://www.gnu.org/copyleft/gpl.html
+ */
+#include <dt-bindings/pinctrl/nomadik.h>
+
+/ {
+       in_nopull: in_nopull {
+               ste,input = <INPUT_NOPULL>;
+       };
+
+       in_pu: input_pull_up {
+               ste,input = <INPUT_PULLUP>;
+       };
+
+       in_pd: input_pull_down {
+               ste,input = <INPUT_PULLDOWN>;
+       };
+
+       out_hi: output_high {
+               ste,output = <OUTPUT_HIGH>;
+       };
+
+       out_lo: output_low {
+               ste,output = <OUTPUT_LOW>;
+       };
+
+       gpio_out_lo: gpio_output_low {
+               ste,gpio = <GPIOMODE_ENABLED>;
+               ste,output = <OUTPUT_LOW>;
+       };
+
+       slpm_in_pu: slpm_in_pu {
+               ste,sleep = <SLPM_ENABLED>;
+               ste,sleep-input = <SLPM_INPUT_PULLUP>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+       };
+
+       slpm_in_wkup_pdis: slpm_in_wkup_pdis {
+               ste,sleep = <SLPM_ENABLED>;
+               ste,sleep-input = <SLPM_DIR_INPUT>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+               ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>;
+       };
+
+       slpm_out_lo: slpm_out_lo {
+               ste,sleep = <SLPM_ENABLED>;
+               ste,sleep-output = <SLPM_OUTPUT_LOW>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+       };
+
+       slpm_out_hi: slpm_out_hi {
+               ste,sleep = <SLPM_ENABLED>;
+               ste,sleep-output = <SLPM_OUTPUT_HIGH>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+       };
+
+       slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis {
+               ste,sleep = <SLPM_ENABLED>;
+               ste,sleep-output = <SLPM_OUTPUT_HIGH>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+               ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>;
+       };
+
+       slpm_out_wkup_pdis: slpm_out_wkup_pdis {
+               ste,sleep = <SLPM_ENABLED>;
+               ste,sleep-output = <SLPM_DIR_OUTPUT>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+               ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>;
+       };
+
+       in_wkup_pdis: in_wkup_pdis {
+               ste,sleep-input = <SLPM_DIR_INPUT>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+               ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>;
+       };
+
+       out_hi_wkup_pdis: out_hi_wkup_pdis {
+               ste,sleep-output = <SLPM_OUTPUT_HIGH>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+               ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>;
+       };
+
+       out_wkup_pdis: out_wkup_pdis {
+               ste,sleep-output = <SLPM_DIR_OUTPUT>;
+               ste,sleep-wakeup = <SLPM_WAKEUP_ENABLE>;
+               ste,sleep-pull-disable = <SLPM_PDIS_DISABLED>;
+       };
+};
 
--- /dev/null
+/*
+ * nomadik.h
+ *
+ * Copyright (C) ST-Ericsson SA 2013
+ * Author: Gabriel Fernandez <gabriel.fernandez@st.com> for ST-Ericsson.
+ * License terms:  GNU General Public License (GPL), version 2
+ */
+
+#define INPUT_NOPULL           0
+#define INPUT_PULLUP           1
+#define INPUT_PULLDOWN         2
+
+#define OUTPUT_LOW             0
+#define OUTPUT_HIGH            1
+#define DIR_OUTPUT             2
+
+#define SLPM_DISABLED          0
+#define SLPM_ENABLED           1
+
+#define SLPM_INPUT_NOPULL      0
+#define SLPM_INPUT_PULLUP      1
+#define SLPM_INPUT_PULLDOWN    2
+#define SLPM_DIR_INPUT         3
+
+#define SLPM_OUTPUT_LOW                0
+#define SLPM_OUTPUT_HIGH       1
+#define SLPM_DIR_OUTPUT                2
+
+#define SLPM_WAKEUP_DISABLE    0
+#define SLPM_WAKEUP_ENABLE     1
+
+#define GPIOMODE_DISABLED      0
+#define GPIOMODE_ENABLED       1
+
+#define SLPM_PDIS_DISABLED     0
+#define SLPM_PDIS_ENABLED      1