arch:dts:starfive:Enable i2stx_4ch0 node
[platform/kernel/linux-starfive.git] / arch / riscv / boot / dts / starfive / jh7110-visionfive-v2.dts
1 // SPDX-License-Identifier: GPL-2.0 OR MIT
2 /*
3  * Copyright (C) 2022 StarFive Technology Co., Ltd.
4  * Copyright (C) 2022 Hal Feng <hal.feng@starfivetech.com>
5  */
6
7 /dts-v1/;
8 #include "jh7110-visionfive-v2.dtsi"
9 #include "codecs/sf_hdmi.dtsi"
10
11 / {
12         model = "StarFive VisionFive V2";
13         compatible = "starfive,visionfive-v2", "starfive,jh7110";
14
15         gpio-restart {
16                 compatible = "gpio-restart";
17                 gpios = <&gpio 35 GPIO_ACTIVE_HIGH>;
18                 priority = <224>;
19         };
20
21 };
22
23 &gpio {
24         uart0_pins: uart0-pins {
25                 uart0-pins-tx {
26                         starfive,pins = <PAD_GPIO5>;
27                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | GPIO_DS(3))>;
28                         starfive,pin-gpio-dout = <GPO_UART0_SOUT>;
29                         starfive,pin-gpio-doen = <OEN_LOW>;
30                 };
31
32                 uart0-pins-rx {
33                         starfive,pins = <PAD_GPIO6>;
34                         starfive,pinmux = <PAD_GPIO6_FUNC_SEL 0>;
35                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | GPIO_PU(1))>;
36                         starfive,pin-gpio-doen = <OEN_HIGH>;
37                         starfive,pin-gpio-din =  <GPI_UART0_SIN>;
38                 };
39         };
40
41         i2c2_pins: i2c2-pins {
42                 i2c2-pins-scl {
43                         starfive,pins = <PAD_GPIO3>;
44                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
45                         starfive,pin-gpio-dout = <GPO_LOW>;
46                         starfive,pin-gpio-doen = <OEN_I2C2_IC_CLK_OE>;
47                         starfive,pin-gpio-din =  <GPI_I2C2_IC_CLK_IN_A>;
48                 };
49
50                 i2c2-pins-sda {
51                         starfive,pins = <PAD_GPIO2>;
52                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
53                         starfive,pin-gpio-dout = <GPO_LOW>;
54                         starfive,pin-gpio-doen = <OEN_I2C2_IC_DATA_OE>;
55                         starfive,pin-gpio-din =  <GPI_I2C2_IC_DATA_IN_A>;
56                 };
57         };
58
59         mmc0_pins: mmc0-pins {
60                  mmc0-pins-rest {
61                         starfive,pins = <PAD_GPIO62>;
62                         starfive,pinmux = <PAD_GPIO62_FUNC_SEL 0>;
63                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
64                         starfive,pin-gpio-dout = <GPO_SDIO0_RST_N>;
65                         starfive,pin-gpio-doen = <OEN_LOW>;
66                 };
67         };
68
69         sdcard1_pins: sdcard1-pins {
70                 sdcard1-pins0 {
71                         starfive,pins = <PAD_GPIO10>;
72                         starfive,pinmux = <PAD_GPIO10_FUNC_SEL 0>;
73                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)) | GPIO_DS(3))>;
74                         starfive,pin-gpio-dout = <GPO_SDIO1_CCLK_OUT>;
75                         starfive,pin-gpio-doen = <OEN_LOW>;
76                 };
77
78                 sdcard1-pins1 {
79                         starfive,pins = <PAD_GPIO9>;
80                         starfive,pinmux = <PAD_GPIO9_FUNC_SEL 0>;
81                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)) | GPIO_DS(3))>;
82                         starfive,pin-gpio-dout = <GPO_SDIO1_CCMD_OUT>;
83                         starfive,pin-gpio-doen = <OEN_SDIO1_CCMD_OUT_EN>;
84                         starfive,pin-gpio-din =  <GPI_SDIO1_CCMD_IN>;
85                 };
86
87                 sdcard1-pins2 {
88                         starfive,pins = <PAD_GPIO11>;
89                         starfive,pinmux = <PAD_GPIO11_FUNC_SEL 0>;
90                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)) | GPIO_DS(3))>;
91                         starfive,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_0>;
92                         starfive,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_0>;
93                         starfive,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_0>;
94                 };
95
96                 sdcard1-pins3 {
97                         starfive,pins = <PAD_GPIO12>;
98                         starfive,pinmux = <PAD_GPIO12_FUNC_SEL 0>;
99                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)) | GPIO_DS(3))>;
100                         starfive,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_1>;
101                         starfive,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_1>;
102                         starfive,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_1>;
103                 };
104
105                 sdcard1-pins4 {
106                         starfive,pins = <PAD_GPIO7>;
107                         starfive,pinmux = <PAD_GPIO7_FUNC_SEL 0>;
108                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)) | GPIO_DS(3))>;
109                         starfive,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_2>;
110                         starfive,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_2>;
111                         starfive,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_2>;
112                 };
113
114                 sdcard1-pins5 {
115                         starfive,pins = <PAD_GPIO8>;
116                         starfive,pinmux = <PAD_GPIO8_FUNC_SEL 0>;
117                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)) | GPIO_DS(3))>;
118                         starfive,pin-gpio-dout = <GPO_SDIO1_CDATA_OUT_3>;
119                         starfive,pin-gpio-doen = <OEN_SDIO1_CDATA_OUT_EN_3>;
120                         starfive,pin-gpio-din =  <GPI_SDIO1_CDATA_IN_3>;
121                 };
122         };
123
124         inno_hdmi_pins: inno_hdmi-pins {
125                 inno_hdmi-scl {
126                         starfive,pins = <PAD_GPIO0>;
127                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
128                         starfive,pin-gpio-dout = <GPO_HDMI0_DDC_SCL_OUT>;
129                         starfive,pin-gpio-doen = <OEN_HDMI0_DDC_SCL_OEN>;
130                         starfive,pin-gpio-din =  <GPI_HDMI0_DDC_SCL_IN>;
131                 };
132
133                 inno_hdmi-sda {
134                         starfive,pins = <PAD_GPIO1>;
135                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
136                         starfive,pin-gpio-dout = <GPO_HDMI0_DDC_SDA_OUT>;
137                         starfive,pin-gpio-doen = <OEN_HDMI0_DDC_SDA_OEN>;
138                         starfive,pin-gpio-din =  <GPI_HDMI0_DDC_SDA_IN>;
139                 };
140                 inno_hdmi-cec-pins {
141                         starfive,pins = <PAD_GPIO14>;
142                         //starfive,pinmux = <PAD_GPIO14_FUNC_SEL 0>;
143                         starfive,pin-ioconfig = <IO(GPIO_IE(1) | (GPIO_PU(1)))>;
144                         starfive,pin-gpio-doen = <OEN_HDMI0_CEC_SDA_OEN>;
145                         starfive,pin-gpio-dout = <GPO_HDMI0_CEC_SDA_OUT>;
146                         starfive,pin-gpio-din =  <GPI_HDMI0_CEC_SDA_IN>;
147                 };
148                 inno_hdmi-hpd-pins {
149                         starfive,pins = <PAD_GPIO15>;
150                         //starfive,pinmux = <PAD_GPIO15_FUNC_SEL 0>;
151                         starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
152                         starfive,pin-gpio-doen = <OEN_HIGH>;
153                         starfive,pin-gpio-din =  <GPI_HDMI0_HPD>;
154                 };
155         };
156
157         mclk_ext_pins: mclk_ext_pins {
158                 mclk_ext_pins {
159                         starfive,pins = <PAD_GPIO4>;
160                         starfive,pin-ioconfig = <IO(GPIO_IE(1))>;
161                         starfive,pin-gpio-din = <GPI_CRG0_EXT_MCLK>;
162                         starfive,pin-gpio-doen = <OEN_HIGH>;
163                 };
164         };
165 };
166
167 &uart0 {
168         pinctrl-names = "default";
169         pinctrl-0 = <&uart0_pins>;
170         status = "okay";
171 };
172
173 &i2c2 {
174         pinctrl-names = "default";
175         pinctrl-0 = <&i2c2_pins>;
176         status = "okay";
177 };
178
179 &sdio0 {
180         pinctrl-names = "default";
181         pinctrl-0 = <&mmc0_pins>;
182         status = "okay";
183 };
184
185 &sdio1 {
186         pinctrl-names = "default";
187         pinctrl-0 = <&sdcard1_pins>;
188         //cd-gpios = <&gpio 41 0>;
189         status = "okay";
190 };
191
192 &hdmi {
193         status = "okay";
194         pinctrl-names = "default";
195         pinctrl-0 = <&inno_hdmi_pins>;
196 };
197
198 &i2stx_4ch0 {
199         pinctrl-names = "default";
200         pinctrl-0 = <&mclk_ext_pins>;
201         status = "okay";
202 };