xref: /linux/arch/riscv/boot/dts/spacemit/k1-pinctrl.dtsi (revision db4a3f0fbedb0398f77b9047e8b8bb2b49f355bb)
1// SPDX-License-Identifier: GPL-2.0 OR MIT
2/*
3 * Copyright (c) 2024 Yixun Lan <dlan@gentoo.org>
4 */
5
6#include <dt-bindings/gpio/gpio.h>
7
8#define K1_PADCONF(pin, func) (((pin) << 16) | (func))
9
10/* Map GPIO pin to each bank's <index, offset> */
11#define K1_GPIO(x)	(x / 32) (x % 32)
12
13&pinctrl {
14	gmac0_cfg: gmac0-cfg {
15		gmac0-pins {
16			pinmux = <K1_PADCONF(0, 1)>,	/* gmac0_rxdv */
17				 <K1_PADCONF(1, 1)>,	/* gmac0_rx_d0 */
18				 <K1_PADCONF(2, 1)>,	/* gmac0_rx_d1 */
19				 <K1_PADCONF(3, 1)>,	/* gmac0_rx_clk */
20				 <K1_PADCONF(4, 1)>,	/* gmac0_rx_d2 */
21				 <K1_PADCONF(5, 1)>,	/* gmac0_rx_d3 */
22				 <K1_PADCONF(6, 1)>,	/* gmac0_tx_d0 */
23				 <K1_PADCONF(7, 1)>,	/* gmac0_tx_d1 */
24				 <K1_PADCONF(8, 1)>,	/* gmac0_tx */
25				 <K1_PADCONF(9, 1)>,	/* gmac0_tx_d2 */
26				 <K1_PADCONF(10, 1)>,	/* gmac0_tx_d3 */
27				 <K1_PADCONF(11, 1)>,	/* gmac0_tx_en */
28				 <K1_PADCONF(12, 1)>,	/* gmac0_mdc */
29				 <K1_PADCONF(13, 1)>,	/* gmac0_mdio */
30				 <K1_PADCONF(14, 1)>,	/* gmac0_int_n */
31				 <K1_PADCONF(45, 1)>;	/* gmac0_clk_ref */
32
33			bias-pull-up = <0>;
34			drive-strength = <21>;
35		};
36	};
37
38	gmac1_cfg: gmac1-cfg {
39		gmac1-pins {
40			pinmux = <K1_PADCONF(29, 1)>,	/* gmac1_rxdv */
41				 <K1_PADCONF(30, 1)>,	/* gmac1_rx_d0 */
42				 <K1_PADCONF(31, 1)>,	/* gmac1_rx_d1 */
43				 <K1_PADCONF(32, 1)>,	/* gmac1_rx_clk */
44				 <K1_PADCONF(33, 1)>,	/* gmac1_rx_d2 */
45				 <K1_PADCONF(34, 1)>,	/* gmac1_rx_d3 */
46				 <K1_PADCONF(35, 1)>,	/* gmac1_tx_d0 */
47				 <K1_PADCONF(36, 1)>,	/* gmac1_tx_d1 */
48				 <K1_PADCONF(37, 1)>,	/* gmac1_tx */
49				 <K1_PADCONF(38, 1)>,	/* gmac1_tx_d2 */
50				 <K1_PADCONF(39, 1)>,	/* gmac1_tx_d3 */
51				 <K1_PADCONF(40, 1)>,	/* gmac1_tx_en */
52				 <K1_PADCONF(41, 1)>,	/* gmac1_mdc */
53				 <K1_PADCONF(42, 1)>,	/* gmac1_mdio */
54				 <K1_PADCONF(43, 1)>,	/* gmac1_int_n */
55				 <K1_PADCONF(46, 1)>;	/* gmac1_clk_ref */
56
57			bias-pull-up = <0>;
58			drive-strength = <21>;
59		};
60	};
61
62	uart0_2_cfg: uart0-2-cfg {
63		uart0-2-pins {
64			pinmux = <K1_PADCONF(68, 2)>,
65				 <K1_PADCONF(69, 2)>;
66
67			bias-pull-up = <0>;
68			drive-strength = <32>;
69		};
70	};
71
72	pwm14_1_cfg: pwm14-1-cfg {
73		pwm14-1-pins {
74			pinmux = <K1_PADCONF(44, 4)>;
75			bias-pull-up = <0>;
76			drive-strength = <32>;
77		};
78	};
79};
80