1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Pinctrl dts file for HiSilicon Poplar board
4 *
5 * Copyright (c) 2016-2018 HiSilicon Technologies Co., Ltd.
6 */
7
8#include <dt-bindings/pinctrl/hisi.h>
9
10/* value, enable bits, disable bits, mask */
11#define PINCTRL_PULLDOWN(value, enable, disable, mask) \
12	(value << 13) (enable << 13) (disable << 13) (mask << 13)
13#define PINCTRL_PULLUP(value, enable, disable, mask) \
14	(value << 12) (enable << 12) (disable << 12) (mask << 12)
15#define PINCTRL_SLEW_RATE(value, mask)	  (value << 8) (mask << 8)
16#define PINCTRL_DRV_STRENGTH(value, mask) (value << 4) (mask << 4)
17
18&pmx0 {
19	emmc_pins_1: emmc-pins-1 {
20		pinctrl-single,pins = <
21			0x000 MUX_M2
22			0x004 MUX_M2
23			0x008 MUX_M2
24			0x00c MUX_M2
25			0x010 MUX_M2
26			0x014 MUX_M2
27			0x018 MUX_M2
28			0x01c MUX_M2
29			0x024 MUX_M2
30		>;
31		pinctrl-single,bias-pulldown = <
32			PINCTRL_PULLDOWN(0, 1, 0, 1)
33		>;
34		pinctrl-single,bias-pullup = <
35			PINCTRL_PULLUP(0, 1, 0, 1)
36		>;
37		pinctrl-single,slew-rate = <
38			PINCTRL_SLEW_RATE(1, 1)
39		>;
40		pinctrl-single,drive-strength = <
41			PINCTRL_DRV_STRENGTH(0xb, 0xf)
42		>;
43	};
44
45	emmc_pins_2: emmc-pins-2 {
46		pinctrl-single,pins = <
47			0x028 MUX_M2
48		>;
49		pinctrl-single,bias-pulldown = <
50			PINCTRL_PULLDOWN(0, 1, 0, 1)
51		>;
52		pinctrl-single,bias-pullup = <
53			PINCTRL_PULLUP(0, 1, 0, 1)
54		>;
55		pinctrl-single,slew-rate = <
56			PINCTRL_SLEW_RATE(1, 1)
57		>;
58		pinctrl-single,drive-strength = <
59			PINCTRL_DRV_STRENGTH(0x9, 0xf)
60		>;
61	};
62
63	emmc_pins_3: emmc-pins-3 {
64		pinctrl-single,pins = <
65			0x02c MUX_M2
66		>;
67		pinctrl-single,bias-pulldown = <
68			PINCTRL_PULLDOWN(0, 1, 0, 1)
69		>;
70		pinctrl-single,bias-pullup = <
71			PINCTRL_PULLUP(0, 1, 0, 1)
72		>;
73		pinctrl-single,slew-rate = <
74			PINCTRL_SLEW_RATE(1, 1)
75		>;
76		pinctrl-single,drive-strength = <
77			PINCTRL_DRV_STRENGTH(3, 3)
78		>;
79	};
80
81	emmc_pins_4: emmc-pins-4 {
82		pinctrl-single,pins = <
83			0x030 MUX_M2
84		>;
85		pinctrl-single,bias-pulldown = <
86			PINCTRL_PULLDOWN(1, 1, 0, 1)
87		>;
88		pinctrl-single,bias-pullup = <
89			PINCTRL_PULLUP(0, 1, 0, 1)
90		>;
91		pinctrl-single,slew-rate = <
92			PINCTRL_SLEW_RATE(1, 1)
93		>;
94		pinctrl-single,drive-strength = <
95			PINCTRL_DRV_STRENGTH(3, 3)
96		>;
97	};
98};
99