162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Pinctrl dts file for HiSilicon Poplar board
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (c) 2016-2018 HiSilicon Technologies Co., Ltd.
662306a36Sopenharmony_ci */
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci#include <dt-bindings/pinctrl/hisi.h>
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci/* value, enable bits, disable bits, mask */
1162306a36Sopenharmony_ci#define PINCTRL_PULLDOWN(value, enable, disable, mask) \
1262306a36Sopenharmony_ci	(value << 13) (enable << 13) (disable << 13) (mask << 13)
1362306a36Sopenharmony_ci#define PINCTRL_PULLUP(value, enable, disable, mask) \
1462306a36Sopenharmony_ci	(value << 12) (enable << 12) (disable << 12) (mask << 12)
1562306a36Sopenharmony_ci#define PINCTRL_SLEW_RATE(value, mask)	  (value << 8) (mask << 8)
1662306a36Sopenharmony_ci#define PINCTRL_DRV_STRENGTH(value, mask) (value << 4) (mask << 4)
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci&pmx0 {
1962306a36Sopenharmony_ci	emmc_pins_1: emmc-pins-1 {
2062306a36Sopenharmony_ci		pinctrl-single,pins = <
2162306a36Sopenharmony_ci			0x000 MUX_M2
2262306a36Sopenharmony_ci			0x004 MUX_M2
2362306a36Sopenharmony_ci			0x008 MUX_M2
2462306a36Sopenharmony_ci			0x00c MUX_M2
2562306a36Sopenharmony_ci			0x010 MUX_M2
2662306a36Sopenharmony_ci			0x014 MUX_M2
2762306a36Sopenharmony_ci			0x018 MUX_M2
2862306a36Sopenharmony_ci			0x01c MUX_M2
2962306a36Sopenharmony_ci			0x024 MUX_M2
3062306a36Sopenharmony_ci		>;
3162306a36Sopenharmony_ci		pinctrl-single,bias-pulldown = <
3262306a36Sopenharmony_ci			PINCTRL_PULLDOWN(0, 1, 0, 1)
3362306a36Sopenharmony_ci		>;
3462306a36Sopenharmony_ci		pinctrl-single,bias-pullup = <
3562306a36Sopenharmony_ci			PINCTRL_PULLUP(0, 1, 0, 1)
3662306a36Sopenharmony_ci		>;
3762306a36Sopenharmony_ci		pinctrl-single,slew-rate = <
3862306a36Sopenharmony_ci			PINCTRL_SLEW_RATE(1, 1)
3962306a36Sopenharmony_ci		>;
4062306a36Sopenharmony_ci		pinctrl-single,drive-strength = <
4162306a36Sopenharmony_ci			PINCTRL_DRV_STRENGTH(0xb, 0xf)
4262306a36Sopenharmony_ci		>;
4362306a36Sopenharmony_ci	};
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	emmc_pins_2: emmc-pins-2 {
4662306a36Sopenharmony_ci		pinctrl-single,pins = <
4762306a36Sopenharmony_ci			0x028 MUX_M2
4862306a36Sopenharmony_ci		>;
4962306a36Sopenharmony_ci		pinctrl-single,bias-pulldown = <
5062306a36Sopenharmony_ci			PINCTRL_PULLDOWN(0, 1, 0, 1)
5162306a36Sopenharmony_ci		>;
5262306a36Sopenharmony_ci		pinctrl-single,bias-pullup = <
5362306a36Sopenharmony_ci			PINCTRL_PULLUP(0, 1, 0, 1)
5462306a36Sopenharmony_ci		>;
5562306a36Sopenharmony_ci		pinctrl-single,slew-rate = <
5662306a36Sopenharmony_ci			PINCTRL_SLEW_RATE(1, 1)
5762306a36Sopenharmony_ci		>;
5862306a36Sopenharmony_ci		pinctrl-single,drive-strength = <
5962306a36Sopenharmony_ci			PINCTRL_DRV_STRENGTH(0x9, 0xf)
6062306a36Sopenharmony_ci		>;
6162306a36Sopenharmony_ci	};
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci	emmc_pins_3: emmc-pins-3 {
6462306a36Sopenharmony_ci		pinctrl-single,pins = <
6562306a36Sopenharmony_ci			0x02c MUX_M2
6662306a36Sopenharmony_ci		>;
6762306a36Sopenharmony_ci		pinctrl-single,bias-pulldown = <
6862306a36Sopenharmony_ci			PINCTRL_PULLDOWN(0, 1, 0, 1)
6962306a36Sopenharmony_ci		>;
7062306a36Sopenharmony_ci		pinctrl-single,bias-pullup = <
7162306a36Sopenharmony_ci			PINCTRL_PULLUP(0, 1, 0, 1)
7262306a36Sopenharmony_ci		>;
7362306a36Sopenharmony_ci		pinctrl-single,slew-rate = <
7462306a36Sopenharmony_ci			PINCTRL_SLEW_RATE(1, 1)
7562306a36Sopenharmony_ci		>;
7662306a36Sopenharmony_ci		pinctrl-single,drive-strength = <
7762306a36Sopenharmony_ci			PINCTRL_DRV_STRENGTH(3, 3)
7862306a36Sopenharmony_ci		>;
7962306a36Sopenharmony_ci	};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci	emmc_pins_4: emmc-pins-4 {
8262306a36Sopenharmony_ci		pinctrl-single,pins = <
8362306a36Sopenharmony_ci			0x030 MUX_M2
8462306a36Sopenharmony_ci		>;
8562306a36Sopenharmony_ci		pinctrl-single,bias-pulldown = <
8662306a36Sopenharmony_ci			PINCTRL_PULLDOWN(1, 1, 0, 1)
8762306a36Sopenharmony_ci		>;
8862306a36Sopenharmony_ci		pinctrl-single,bias-pullup = <
8962306a36Sopenharmony_ci			PINCTRL_PULLUP(0, 1, 0, 1)
9062306a36Sopenharmony_ci		>;
9162306a36Sopenharmony_ci		pinctrl-single,slew-rate = <
9262306a36Sopenharmony_ci			PINCTRL_SLEW_RATE(1, 1)
9362306a36Sopenharmony_ci		>;
9462306a36Sopenharmony_ci		pinctrl-single,drive-strength = <
9562306a36Sopenharmony_ci			PINCTRL_DRV_STRENGTH(3, 3)
9662306a36Sopenharmony_ci		>;
9762306a36Sopenharmony_ci	};
9862306a36Sopenharmony_ci};
99