1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0 2*4882a593Smuzhiyun/* 3*4882a593Smuzhiyun * Pinctrl dts file for HiSilicon HiKey970 development board 4*4882a593Smuzhiyun */ 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun#include <dt-bindings/pinctrl/hisi.h> 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun/ { 9*4882a593Smuzhiyun soc { 10*4882a593Smuzhiyun range: gpio-range { 11*4882a593Smuzhiyun #pinctrl-single,gpio-range-cells = <3>; 12*4882a593Smuzhiyun }; 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun pmx0: pinmux@e896c000 { 15*4882a593Smuzhiyun compatible = "pinctrl-single"; 16*4882a593Smuzhiyun reg = <0x0 0xe896c000 0x0 0x72c>; 17*4882a593Smuzhiyun #pinctrl-cells = <1>; 18*4882a593Smuzhiyun #gpio-range-cells = <0x3>; 19*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 20*4882a593Smuzhiyun pinctrl-single,function-mask = <0x7>; 21*4882a593Smuzhiyun /* pin base, nr pins & gpio function */ 22*4882a593Smuzhiyun pinctrl-single,gpio-range = <&range 0 82 0>; 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun uart0_pmx_func: uart0_pmx_func { 25*4882a593Smuzhiyun pinctrl-single,pins = < 26*4882a593Smuzhiyun 0x054 MUX_M2 /* UART0_RXD */ 27*4882a593Smuzhiyun 0x058 MUX_M2 /* UART0_TXD */ 28*4882a593Smuzhiyun >; 29*4882a593Smuzhiyun }; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun uart2_pmx_func: uart2_pmx_func { 32*4882a593Smuzhiyun pinctrl-single,pins = < 33*4882a593Smuzhiyun 0x700 MUX_M2 /* UART2_CTS_N */ 34*4882a593Smuzhiyun 0x704 MUX_M2 /* UART2_RTS_N */ 35*4882a593Smuzhiyun 0x708 MUX_M2 /* UART2_RXD */ 36*4882a593Smuzhiyun 0x70c MUX_M2 /* UART2_TXD */ 37*4882a593Smuzhiyun >; 38*4882a593Smuzhiyun }; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun uart3_pmx_func: uart3_pmx_func { 41*4882a593Smuzhiyun pinctrl-single,pins = < 42*4882a593Smuzhiyun 0x064 MUX_M1 /* UART3_CTS_N */ 43*4882a593Smuzhiyun 0x068 MUX_M1 /* UART3_RTS_N */ 44*4882a593Smuzhiyun 0x06c MUX_M1 /* UART3_RXD */ 45*4882a593Smuzhiyun 0x070 MUX_M1 /* UART3_TXD */ 46*4882a593Smuzhiyun >; 47*4882a593Smuzhiyun }; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun uart4_pmx_func: uart4_pmx_func { 50*4882a593Smuzhiyun pinctrl-single,pins = < 51*4882a593Smuzhiyun 0x074 MUX_M1 /* UART4_CTS_N */ 52*4882a593Smuzhiyun 0x078 MUX_M1 /* UART4_RTS_N */ 53*4882a593Smuzhiyun 0x07c MUX_M1 /* UART4_RXD */ 54*4882a593Smuzhiyun 0x080 MUX_M1 /* UART4_TXD */ 55*4882a593Smuzhiyun >; 56*4882a593Smuzhiyun }; 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun uart6_pmx_func: uart6_pmx_func { 59*4882a593Smuzhiyun pinctrl-single,pins = < 60*4882a593Smuzhiyun 0x05c MUX_M1 /* UART6_RXD */ 61*4882a593Smuzhiyun 0x060 MUX_M1 /* UART6_TXD */ 62*4882a593Smuzhiyun >; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun }; 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun pmx2: pinmux@e896c800 { 67*4882a593Smuzhiyun compatible = "pinconf-single"; 68*4882a593Smuzhiyun reg = <0x0 0xe896c800 0x0 0x72c>; 69*4882a593Smuzhiyun #pinctrl-cells = <1>; 70*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 71*4882a593Smuzhiyun 72*4882a593Smuzhiyun uart0_cfg_func: uart0_cfg_func { 73*4882a593Smuzhiyun pinctrl-single,pins = < 74*4882a593Smuzhiyun 0x058 0x0 /* UART0_RXD */ 75*4882a593Smuzhiyun 0x05c 0x0 /* UART0_TXD */ 76*4882a593Smuzhiyun >; 77*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 78*4882a593Smuzhiyun PULL_DIS 79*4882a593Smuzhiyun PULL_DOWN 80*4882a593Smuzhiyun PULL_DIS 81*4882a593Smuzhiyun PULL_DOWN 82*4882a593Smuzhiyun >; 83*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 84*4882a593Smuzhiyun PULL_DIS 85*4882a593Smuzhiyun PULL_UP 86*4882a593Smuzhiyun PULL_DIS 87*4882a593Smuzhiyun PULL_UP 88*4882a593Smuzhiyun >; 89*4882a593Smuzhiyun pinctrl-single,drive-strength = < 90*4882a593Smuzhiyun DRIVE7_04MA DRIVE6_MASK 91*4882a593Smuzhiyun >; 92*4882a593Smuzhiyun }; 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun uart2_cfg_func: uart2_cfg_func { 95*4882a593Smuzhiyun pinctrl-single,pins = < 96*4882a593Smuzhiyun 0x700 0x0 /* UART2_CTS_N */ 97*4882a593Smuzhiyun 0x704 0x0 /* UART2_RTS_N */ 98*4882a593Smuzhiyun 0x708 0x0 /* UART2_RXD */ 99*4882a593Smuzhiyun 0x70c 0x0 /* UART2_TXD */ 100*4882a593Smuzhiyun >; 101*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 102*4882a593Smuzhiyun PULL_DIS 103*4882a593Smuzhiyun PULL_DOWN 104*4882a593Smuzhiyun PULL_DIS 105*4882a593Smuzhiyun PULL_DOWN 106*4882a593Smuzhiyun >; 107*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 108*4882a593Smuzhiyun PULL_DIS 109*4882a593Smuzhiyun PULL_UP 110*4882a593Smuzhiyun PULL_DIS 111*4882a593Smuzhiyun PULL_UP 112*4882a593Smuzhiyun >; 113*4882a593Smuzhiyun pinctrl-single,drive-strength = < 114*4882a593Smuzhiyun DRIVE7_04MA DRIVE6_MASK 115*4882a593Smuzhiyun >; 116*4882a593Smuzhiyun }; 117*4882a593Smuzhiyun 118*4882a593Smuzhiyun uart3_cfg_func: uart3_cfg_func { 119*4882a593Smuzhiyun pinctrl-single,pins = < 120*4882a593Smuzhiyun 0x068 0x0 /* UART3_CTS_N */ 121*4882a593Smuzhiyun 0x06c 0x0 /* UART3_RTS_N */ 122*4882a593Smuzhiyun 0x070 0x0 /* UART3_RXD */ 123*4882a593Smuzhiyun 0x074 0x0 /* UART3_TXD */ 124*4882a593Smuzhiyun >; 125*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 126*4882a593Smuzhiyun PULL_DIS 127*4882a593Smuzhiyun PULL_DOWN 128*4882a593Smuzhiyun PULL_DIS 129*4882a593Smuzhiyun PULL_DOWN 130*4882a593Smuzhiyun >; 131*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 132*4882a593Smuzhiyun PULL_DIS 133*4882a593Smuzhiyun PULL_UP 134*4882a593Smuzhiyun PULL_DIS 135*4882a593Smuzhiyun PULL_UP 136*4882a593Smuzhiyun >; 137*4882a593Smuzhiyun pinctrl-single,drive-strength = < 138*4882a593Smuzhiyun DRIVE7_04MA DRIVE6_MASK 139*4882a593Smuzhiyun >; 140*4882a593Smuzhiyun }; 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun uart4_cfg_func: uart4_cfg_func { 143*4882a593Smuzhiyun pinctrl-single,pins = < 144*4882a593Smuzhiyun 0x078 0x0 /* UART4_CTS_N */ 145*4882a593Smuzhiyun 0x07c 0x0 /* UART4_RTS_N */ 146*4882a593Smuzhiyun 0x080 0x0 /* UART4_RXD */ 147*4882a593Smuzhiyun 0x084 0x0 /* UART4_TXD */ 148*4882a593Smuzhiyun >; 149*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 150*4882a593Smuzhiyun PULL_DIS 151*4882a593Smuzhiyun PULL_DOWN 152*4882a593Smuzhiyun PULL_DIS 153*4882a593Smuzhiyun PULL_DOWN 154*4882a593Smuzhiyun >; 155*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 156*4882a593Smuzhiyun PULL_DIS 157*4882a593Smuzhiyun PULL_UP 158*4882a593Smuzhiyun PULL_DIS 159*4882a593Smuzhiyun PULL_UP 160*4882a593Smuzhiyun >; 161*4882a593Smuzhiyun pinctrl-single,drive-strength = < 162*4882a593Smuzhiyun DRIVE7_04MA DRIVE6_MASK 163*4882a593Smuzhiyun >; 164*4882a593Smuzhiyun }; 165*4882a593Smuzhiyun 166*4882a593Smuzhiyun uart6_cfg_func: uart6_cfg_func { 167*4882a593Smuzhiyun pinctrl-single,pins = < 168*4882a593Smuzhiyun 0x060 0x0 /* UART6_RXD */ 169*4882a593Smuzhiyun 0x064 0x0 /* UART6_TXD */ 170*4882a593Smuzhiyun >; 171*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 172*4882a593Smuzhiyun PULL_DIS 173*4882a593Smuzhiyun PULL_DOWN 174*4882a593Smuzhiyun PULL_DIS 175*4882a593Smuzhiyun PULL_DOWN 176*4882a593Smuzhiyun >; 177*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 178*4882a593Smuzhiyun PULL_DIS 179*4882a593Smuzhiyun PULL_UP 180*4882a593Smuzhiyun PULL_DIS 181*4882a593Smuzhiyun PULL_UP 182*4882a593Smuzhiyun >; 183*4882a593Smuzhiyun pinctrl-single,drive-strength = < 184*4882a593Smuzhiyun DRIVE7_02MA DRIVE6_MASK 185*4882a593Smuzhiyun >; 186*4882a593Smuzhiyun }; 187*4882a593Smuzhiyun }; 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun pmx5: pinmux@fc182000 { 190*4882a593Smuzhiyun compatible = "pinctrl-single"; 191*4882a593Smuzhiyun reg = <0x0 0xfc182000 0x0 0x028>; 192*4882a593Smuzhiyun #gpio-range-cells = <3>; 193*4882a593Smuzhiyun #pinctrl-cells = <1>; 194*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 195*4882a593Smuzhiyun pinctrl-single,function-mask = <0x7>; 196*4882a593Smuzhiyun /* pin base, nr pins & gpio function */ 197*4882a593Smuzhiyun pinctrl-single,gpio-range = <&range 0 10 0>; 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun sdio_pmx_func: sdio_pmx_func { 200*4882a593Smuzhiyun pinctrl-single,pins = < 201*4882a593Smuzhiyun 0x000 MUX_M1 /* SDIO_CLK */ 202*4882a593Smuzhiyun 0x004 MUX_M1 /* SDIO_CMD */ 203*4882a593Smuzhiyun 0x008 MUX_M1 /* SDIO_DATA0 */ 204*4882a593Smuzhiyun 0x00c MUX_M1 /* SDIO_DATA1 */ 205*4882a593Smuzhiyun 0x010 MUX_M1 /* SDIO_DATA2 */ 206*4882a593Smuzhiyun 0x014 MUX_M1 /* SDIO_DATA3 */ 207*4882a593Smuzhiyun >; 208*4882a593Smuzhiyun }; 209*4882a593Smuzhiyun }; 210*4882a593Smuzhiyun 211*4882a593Smuzhiyun pmx6: pinmux@fc182800 { 212*4882a593Smuzhiyun compatible = "pinconf-single"; 213*4882a593Smuzhiyun reg = <0x0 0xfc182800 0x0 0x028>; 214*4882a593Smuzhiyun #pinctrl-cells = <1>; 215*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 216*4882a593Smuzhiyun 217*4882a593Smuzhiyun sdio_clk_cfg_func: sdio_clk_cfg_func { 218*4882a593Smuzhiyun pinctrl-single,pins = < 219*4882a593Smuzhiyun 0x000 0x0 /* SDIO_CLK */ 220*4882a593Smuzhiyun >; 221*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 222*4882a593Smuzhiyun PULL_DIS 223*4882a593Smuzhiyun PULL_DOWN 224*4882a593Smuzhiyun PULL_DIS 225*4882a593Smuzhiyun PULL_DOWN 226*4882a593Smuzhiyun >; 227*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 228*4882a593Smuzhiyun PULL_DIS 229*4882a593Smuzhiyun PULL_UP 230*4882a593Smuzhiyun PULL_DIS 231*4882a593Smuzhiyun PULL_UP 232*4882a593Smuzhiyun >; 233*4882a593Smuzhiyun pinctrl-single,drive-strength = < 234*4882a593Smuzhiyun DRIVE6_32MA DRIVE6_MASK 235*4882a593Smuzhiyun >; 236*4882a593Smuzhiyun }; 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun sdio_cfg_func: sdio_cfg_func { 239*4882a593Smuzhiyun pinctrl-single,pins = < 240*4882a593Smuzhiyun 0x004 0x0 /* SDIO_CMD */ 241*4882a593Smuzhiyun 0x008 0x0 /* SDIO_DATA0 */ 242*4882a593Smuzhiyun 0x00c 0x0 /* SDIO_DATA1 */ 243*4882a593Smuzhiyun 0x010 0x0 /* SDIO_DATA2 */ 244*4882a593Smuzhiyun 0x014 0x0 /* SDIO_DATA3 */ 245*4882a593Smuzhiyun >; 246*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 247*4882a593Smuzhiyun PULL_DIS 248*4882a593Smuzhiyun PULL_DOWN 249*4882a593Smuzhiyun PULL_DIS 250*4882a593Smuzhiyun PULL_DOWN 251*4882a593Smuzhiyun >; 252*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 253*4882a593Smuzhiyun PULL_UP 254*4882a593Smuzhiyun PULL_UP 255*4882a593Smuzhiyun PULL_DIS 256*4882a593Smuzhiyun PULL_UP 257*4882a593Smuzhiyun >; 258*4882a593Smuzhiyun pinctrl-single,drive-strength = < 259*4882a593Smuzhiyun DRIVE6_19MA DRIVE6_MASK 260*4882a593Smuzhiyun >; 261*4882a593Smuzhiyun }; 262*4882a593Smuzhiyun }; 263*4882a593Smuzhiyun 264*4882a593Smuzhiyun pmx7: pinmux@ff37e000 { 265*4882a593Smuzhiyun compatible = "pinctrl-single"; 266*4882a593Smuzhiyun reg = <0x0 0xff37e000 0x0 0x030>; 267*4882a593Smuzhiyun #gpio-range-cells = <3>; 268*4882a593Smuzhiyun #pinctrl-cells = <1>; 269*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 270*4882a593Smuzhiyun pinctrl-single,function-mask = <7>; 271*4882a593Smuzhiyun /* pin base, nr pins & gpio function */ 272*4882a593Smuzhiyun pinctrl-single,gpio-range = <&range 0 12 0>; 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun sd_pmx_func: sd_pmx_func { 275*4882a593Smuzhiyun pinctrl-single,pins = < 276*4882a593Smuzhiyun 0x000 MUX_M1 /* SD_CLK */ 277*4882a593Smuzhiyun 0x004 MUX_M1 /* SD_CMD */ 278*4882a593Smuzhiyun 0x008 MUX_M1 /* SD_DATA0 */ 279*4882a593Smuzhiyun 0x00c MUX_M1 /* SD_DATA1 */ 280*4882a593Smuzhiyun 0x010 MUX_M1 /* SD_DATA2 */ 281*4882a593Smuzhiyun 0x014 MUX_M1 /* SD_DATA3 */ 282*4882a593Smuzhiyun >; 283*4882a593Smuzhiyun }; 284*4882a593Smuzhiyun }; 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun pmx8: pinmux@ff37e800 { 287*4882a593Smuzhiyun compatible = "pinconf-single"; 288*4882a593Smuzhiyun reg = <0x0 0xff37e800 0x0 0x030>; 289*4882a593Smuzhiyun #pinctrl-cells = <1>; 290*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun sd_clk_cfg_func: sd_clk_cfg_func { 293*4882a593Smuzhiyun pinctrl-single,pins = < 294*4882a593Smuzhiyun 0x000 0x0 /* SD_CLK */ 295*4882a593Smuzhiyun >; 296*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 297*4882a593Smuzhiyun PULL_DIS 298*4882a593Smuzhiyun PULL_DOWN 299*4882a593Smuzhiyun PULL_DIS 300*4882a593Smuzhiyun PULL_DOWN 301*4882a593Smuzhiyun >; 302*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 303*4882a593Smuzhiyun PULL_DIS 304*4882a593Smuzhiyun PULL_UP 305*4882a593Smuzhiyun PULL_DIS 306*4882a593Smuzhiyun PULL_UP 307*4882a593Smuzhiyun >; 308*4882a593Smuzhiyun pinctrl-single,drive-strength = < 309*4882a593Smuzhiyun DRIVE6_32MA 310*4882a593Smuzhiyun DRIVE6_MASK 311*4882a593Smuzhiyun >; 312*4882a593Smuzhiyun }; 313*4882a593Smuzhiyun 314*4882a593Smuzhiyun sd_cfg_func: sd_cfg_func { 315*4882a593Smuzhiyun pinctrl-single,pins = < 316*4882a593Smuzhiyun 0x004 0x0 /* SD_CMD */ 317*4882a593Smuzhiyun 0x008 0x0 /* SD_DATA0 */ 318*4882a593Smuzhiyun 0x00c 0x0 /* SD_DATA1 */ 319*4882a593Smuzhiyun 0x010 0x0 /* SD_DATA2 */ 320*4882a593Smuzhiyun 0x014 0x0 /* SD_DATA3 */ 321*4882a593Smuzhiyun >; 322*4882a593Smuzhiyun pinctrl-single,bias-pulldown = < 323*4882a593Smuzhiyun PULL_DIS 324*4882a593Smuzhiyun PULL_DOWN 325*4882a593Smuzhiyun PULL_DIS 326*4882a593Smuzhiyun PULL_DOWN 327*4882a593Smuzhiyun >; 328*4882a593Smuzhiyun pinctrl-single,bias-pullup = < 329*4882a593Smuzhiyun PULL_UP 330*4882a593Smuzhiyun PULL_UP 331*4882a593Smuzhiyun PULL_DIS 332*4882a593Smuzhiyun PULL_UP 333*4882a593Smuzhiyun >; 334*4882a593Smuzhiyun pinctrl-single,drive-strength = < 335*4882a593Smuzhiyun DRIVE6_19MA 336*4882a593Smuzhiyun DRIVE6_MASK 337*4882a593Smuzhiyun >; 338*4882a593Smuzhiyun }; 339*4882a593Smuzhiyun }; 340*4882a593Smuzhiyun 341*4882a593Smuzhiyun pmx1: pinmux@fff11000 { 342*4882a593Smuzhiyun compatible = "pinctrl-single"; 343*4882a593Smuzhiyun reg = <0x0 0xfff11000 0x0 0x73c>; 344*4882a593Smuzhiyun #gpio-range-cells = <0x3>; 345*4882a593Smuzhiyun #pinctrl-cells = <1>; 346*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 347*4882a593Smuzhiyun pinctrl-single,function-mask = <0x7>; 348*4882a593Smuzhiyun /* pin base, nr pins & gpio function */ 349*4882a593Smuzhiyun pinctrl-single,gpio-range = <&range 0 46 0>; 350*4882a593Smuzhiyun }; 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun pmx16: pinmux@fff11800 { 353*4882a593Smuzhiyun compatible = "pinconf-single"; 354*4882a593Smuzhiyun reg = <0x0 0xfff11800 0x0 0x73c>; 355*4882a593Smuzhiyun #pinctrl-cells = <1>; 356*4882a593Smuzhiyun pinctrl-single,register-width = <0x20>; 357*4882a593Smuzhiyun }; 358*4882a593Smuzhiyun }; 359*4882a593Smuzhiyun}; 360