1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
6 #include <dt-bindings/gpio/gpio.h>
7 #include <dt-bindings/interrupt-controller/irq.h>
8 #include <dt-bindings/pinctrl/bcm2835.h>
11 compatible = "brcm,bcm2835";
28 target-path = "spi1/spidev@0";
35 target-path = "spi1/spidev@1";
42 target-path = "spi1/spidev@2";
49 target-path = "spi2/spidev@0";
56 target-path = "spi2/spidev@1";
63 target-path = "spi2/spidev@2";
72 mcp251xfd_pins: mcp251xfd_pins {
74 brcm,function = <BCM2835_FSEL_GPIO_IN>;
80 target-path = "/clocks";
82 clk_mcp251xfd_osc: mcp251xfd-osc {
84 compatible = "fixed-clock";
85 clock-frequency = <40000000>;
90 mcp251xfd_frag: fragment@10 {
97 mcp251xfd: mcp251xfd@0 {
98 compatible = "microchip,mcp251xfd";
100 pinctrl-names = "default";
101 pinctrl-0 = <&mcp251xfd_pins>;
102 spi-max-frequency = <20000000>;
103 interrupt-parent = <&gpio>;
104 interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
105 clocks = <&clk_mcp251xfd_osc>;
111 target = <&mcp251xfd>;
112 mcp251xfd_rx_int_gpios: __dormant__ {
113 microchip,rx-int-gpios = <&gpio 255 GPIO_ACTIVE_LOW>;
120 mcp251xfd_xceiver_pins: mcp251xfd_xceiver_pins {
122 brcm,function = <BCM2835_FSEL_GPIO_OUT>;
130 reg_mcp251xfd_xceiver: reg_mcp251xfd_xceiver {
131 compatible = "regulator-fixed";
132 regulator-name = "mcp251xfd_xceiver";
133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135 gpio = <&gpio 4 GPIO_ACTIVE_HIGH>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&mcp251xfd_xceiver_pins>;
143 target = <&mcp251xfd>;
145 xceiver-supply = <®_mcp251xfd_xceiver>;
151 <&mcp251xfd_frag>, "target:0=", <&spi0>,
152 <&mcp251xfd>, "reg:0=0",
153 <&mcp251xfd_pins>, "name=mcp251xfd_spi0_0_pins",
154 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi0-0-osc",
155 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi0_0_xceiver_pins",
156 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi0-0-xceiver",
157 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi0-0-xceiver";
159 <&mcp251xfd_frag>, "target:0=", <&spi0>,
160 <&mcp251xfd>, "reg:0=1",
161 <&mcp251xfd_pins>, "name=mcp251xfd_spi0_1_pins",
162 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi0-1-osc",
163 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi0_1_xceiver_pins",
164 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi0-1-xceiver",
165 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi0-1-xceiver";
167 <&mcp251xfd_frag>, "target:0=", <&spi1>,
168 <&mcp251xfd>, "reg:0=0",
169 <&mcp251xfd_pins>, "name=mcp251xfd_spi1_0_pins",
170 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi1-0-osc",
171 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi1_0_xceiver_pins",
172 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi1-0-xceiver",
173 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi1-0-xceiver";
175 <&mcp251xfd_frag>, "target:0=", <&spi1>,
176 <&mcp251xfd>, "reg:0=1",
177 <&mcp251xfd_pins>, "name=mcp251xfd_spi1_1_pins",
178 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi1-1-osc",
179 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi1_1_xceiver_pins",
180 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi1-1-xceiver",
181 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi1-1-xceiver";
183 <&mcp251xfd_frag>, "target:0=", <&spi1>,
184 <&mcp251xfd>, "reg:0=2",
185 <&mcp251xfd_pins>, "name=mcp251xfd_spi1_2_pins",
186 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi1-2-osc",
187 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi1_2_xceiver_pins",
188 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi1-2-xceiver",
189 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi1-2-xceiver";
191 <&mcp251xfd_frag>, "target:0=", <&spi2>,
192 <&mcp251xfd>, "reg:0=0",
193 <&mcp251xfd_pins>, "name=mcp251xfd_spi2_0_pins",
194 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi2-0-osc",
195 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi2_0_xceiver_pins",
196 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi2-0-xceiver",
197 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi2-0-xceiver";
199 <&mcp251xfd_frag>, "target:0=", <&spi2>,
200 <&mcp251xfd>, "reg:0=1",
201 <&mcp251xfd_pins>, "name=mcp251xfd_spi2_1_pins",
202 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi2-1-osc",
203 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi2_1_xceiver_pins",
204 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi2-1-xceiver",
205 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi2-1-xceiver";
207 <&mcp251xfd_frag>, "target:0=", <&spi2>,
208 <&mcp251xfd>, "reg:0=2",
209 <&mcp251xfd_pins>, "name=mcp251xfd_spi2_2_pins",
210 <&clk_mcp251xfd_osc>, "name=mcp251xfd-spi2-2-osc",
211 <&mcp251xfd_xceiver_pins>, "name=mcp251xfd_spi2_2_xceiver_pins",
212 <®_mcp251xfd_xceiver>, "name=reg-mcp251xfd-spi2-2-xceiver",
213 <®_mcp251xfd_xceiver>, "regulator-name=mcp251xfd-spi2-2-xceiver";
214 oscillator = <&clk_mcp251xfd_osc>, "clock-frequency:0";
215 speed = <&mcp251xfd>, "spi-max-frequency:0";
216 interrupt = <&mcp251xfd_pins>, "brcm,pins:0",
217 <&mcp251xfd>, "interrupts:0";
218 rx_interrupt = <0>, "+11",
219 <&mcp251xfd_pins>, "brcm,pins:4",
220 <&mcp251xfd_rx_int_gpios>, "microchip,rx-int-gpios:4";
221 xceiver_enable = <0>, "+12+13+14",
222 <&mcp251xfd_xceiver_pins>, "brcm,pins:0",
223 <®_mcp251xfd_xceiver>, "gpio:4";
224 xceiver_active_high = <®_mcp251xfd_xceiver>, "enable-active-high?";