~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/ti/k3-am642-sr-som.dtsi

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0+
  2 /*
  3  * Copyright (C) 2023 Josua Mayer <josua@solid-run.com>
  4  *
  5  */
  6 
  7 #include <dt-bindings/net/ti-dp83869.h>
  8 
  9 / {
 10         model = "SolidRun AM642 SoM";
 11         compatible = "solidrun,am642-sr-som", "ti,am642";
 12 
 13         aliases {
 14                 ethernet0 = &cpsw_port1;
 15                 ethernet1 = &icssg1_emac0;
 16                 ethernet2 = &icssg1_emac1;
 17                 mmc0 = &sdhci0;
 18                 mmc1 = &sdhci1;
 19                 serial2 = &main_uart0;
 20         };
 21 
 22         chosen {
 23                 /* SoC default UART console */
 24                 stdout-path = "serial2:115200n8";
 25         };
 26 
 27         /* PRU Ethernet Controller */
 28         ethernet {
 29                 compatible = "ti,am642-icssg-prueth";
 30                 pinctrl-names = "default";
 31                 pinctrl-0 = <&pru_rgmii1_default_pins>, <&pru_rgmii2_default_pins>;
 32 
 33                 sram = <&oc_sram>;
 34                 ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>;
 35                 firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
 36                                 "ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
 37                                 "ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
 38                                 "ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
 39                                 "ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
 40                                 "ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
 41 
 42                 /* configure internal pinmux for mii mode */
 43                 ti,pruss-gp-mux-sel = <2>, <2>, <2>, <2>, <2>, <2>;
 44 
 45                 ti,mii-g-rt = <&icssg1_mii_g_rt>;
 46                 ti,mii-rt = <&icssg1_mii_rt>;
 47                 ti,iep = <&icssg1_iep0>, <&icssg1_iep1>;
 48 
 49                 /*
 50                  * Configure icssg interrupt controller to map pru-internal
 51                  * interrupts 8/9 via channels 0/1 to host interrupts 0/1.
 52                  *
 53                  * For details see interrupt controller documentation:
 54                  * Documentation/devicetree/bindings/interrupt-controller/ti,pruss-intc.yaml
 55                  */
 56                 interrupt-parent = <&icssg1_intc>;
 57                 interrupts = <24 0 2>, <25 1 3>;
 58                 interrupt-names = "tx_ts0", "tx_ts1";
 59 
 60                 dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
 61                        <&main_pktdma 0xc201 15>, /* egress slice 0 */
 62                        <&main_pktdma 0xc202 15>, /* egress slice 0 */
 63                        <&main_pktdma 0xc203 15>, /* egress slice 0 */
 64                        <&main_pktdma 0xc204 15>, /* egress slice 1 */
 65                        <&main_pktdma 0xc205 15>, /* egress slice 1 */
 66                        <&main_pktdma 0xc206 15>, /* egress slice 1 */
 67                        <&main_pktdma 0xc207 15>, /* egress slice 1 */
 68                        <&main_pktdma 0x4200 15>, /* ingress slice 0 */
 69                        <&main_pktdma 0x4201 15>; /* ingress slice 1 */
 70                 dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
 71                             "tx1-0", "tx1-1", "tx1-2", "tx1-3",
 72                             "rx0", "rx1";
 73 
 74                 ethernet-ports {
 75                         #address-cells = <1>;
 76                         #size-cells = <0>;
 77 
 78                         icssg1_emac0: port@0 {
 79                                 reg = <0>;
 80                                 ti,syscon-rgmii-delay = <&main_conf 0x4110>;
 81                                 /* Filled in by bootloader */
 82                                 local-mac-address = [00 00 00 00 00 00];
 83                                 phy-handle = <&ethernet_phy2>;
 84                                 phy-mode = "rgmii-id";
 85                         };
 86 
 87                         icssg1_emac1: port@1 {
 88                                 reg = <1>;
 89                                 ti,syscon-rgmii-delay = <&main_conf 0x4114>;
 90                                 /* Filled in by bootloader */
 91                                 local-mac-address = [00 00 00 00 00 00];
 92                                 phy-handle = <&ethernet_phy1>;
 93                                 phy-mode = "rgmii-id";
 94                         };
 95                 };
 96         };
 97 
 98         /* DDR16SS0:
 99          * - Bank 1 @ 0x080000000-0x0FFFFFFFF: max. 2GB in 32-bit address space
100          * - Bank 2 @ 0x880000000-0x9FFFFFFFF: max. 6GB in 64-bit address space
101          */
102         memory@80000000 {
103                 reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
104                       <0x00000008 0x80000000 0x00000001 0x80000000>;
105                 device_type = "memory";
106         };
107 
108         reserved-memory {
109                 #address-cells = <2>;
110                 #size-cells = <2>;
111                 ranges;
112 
113                 secure_ddr: optee@9e800000 {
114                         reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
115                         no-map;
116                 };
117 
118                 main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
119                         compatible = "shared-dma-pool";
120                         reg = <0x00 0xa0000000 0x00 0x100000>;
121                         no-map;
122                 };
123 
124                 main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
125                         compatible = "shared-dma-pool";
126                         reg = <0x00 0xa0100000 0x00 0xf00000>;
127                         no-map;
128                 };
129 
130                 main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
131                         compatible = "shared-dma-pool";
132                         reg = <0x00 0xa1000000 0x00 0x100000>;
133                         no-map;
134                 };
135 
136                 main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
137                         compatible = "shared-dma-pool";
138                         reg = <0x00 0xa1100000 0x00 0xf00000>;
139                         no-map;
140                 };
141 
142                 main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
143                         compatible = "shared-dma-pool";
144                         reg = <0x00 0xa2000000 0x00 0x100000>;
145                         no-map;
146                 };
147 
148                 main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
149                         compatible = "shared-dma-pool";
150                         reg = <0x00 0xa2100000 0x00 0xf00000>;
151                         no-map;
152                 };
153 
154                 main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
155                         compatible = "shared-dma-pool";
156                         reg = <0x00 0xa3000000 0x00 0x100000>;
157                         no-map;
158                 };
159 
160                 main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
161                         compatible = "shared-dma-pool";
162                         reg = <0x00 0xa3100000 0x00 0xf00000>;
163                         no-map;
164                 };
165         };
166 
167         vdd_mmc0: regulator-vdd-mmc0 {
168                 compatible = "regulator-fixed";
169                 regulator-name = "vdd-mmc0";
170                 regulator-min-microvolt = <1800000>;
171                 regulator-max-microvolt = <1800000>;
172                 regulator-always-on;
173                 regulator-boot-on;
174         };
175 };
176 
177 &cpsw3g {
178         pinctrl-names = "default";
179         pinctrl-0 = <&rgmii1_default_pins>;
180         status = "okay";
181 };
182 
183 &cpsw3g_mdio {
184         pinctrl-names = "default";
185         pinctrl-0 = <&mdio0_default_pins>;
186         status = "okay";
187 
188         ethernet_phy0: ethernet-phy@0 {
189                 compatible = "ethernet-phy-id2000.a0f1";
190                 reg = <0>;
191                 pinctrl-names = "default";
192                 pinctrl-0 = <&ethernet_phy0_default_pins>;
193                 ti,clk-output-sel = <DP83869_CLK_O_SEL_REF_CLK>;
194                 ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>;
195                 /*
196                  * Disable interrupts because ISR never clears 0x0040
197                  *
198                  * interrupt-parent = <&main_gpio1>;
199                  * interrupts = <70 IRQ_TYPE_LEVEL_LOW>;
200                  */
201                 /*
202                  * Disable HW Reset because clock signal is daisy-chained
203                  *
204                  * reset-gpios = <&main_gpio0 84 GPIO_ACTIVE_LOW>;
205                  * reset-assert-us = <1>;
206                  * reset-deassert-us = <30>;
207                  */
208         };
209 };
210 
211 &cpsw_port1 {
212         phy-mode = "rgmii-id";
213         phy-handle = <&ethernet_phy0>;
214         status = "okay";
215 };
216 
217 &icssg1_mdio {
218         pinctrl-names = "default";
219         pinctrl-0 = <&pru1_mdio0_default_pins>;
220         status = "okay";
221 
222         ethernet_phy1: ethernet-phy@3 {
223                 compatible = "ethernet-phy-id2000.a0f1";
224                 reg = <3>;
225                 pinctrl-names = "default";
226                 pinctrl-0 = <&ethernet_phy1_default_pins>;
227                 ti,clk-output-sel = <DP83869_CLK_O_SEL_REF_CLK>;
228                 ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>;
229                 /*
230                  * Disable interrupts because ISR never clears 0x0040
231                  *
232                  * interrupt-parent = <&main_gpio1>;
233                  * interrupts = <70 IRQ_TYPE_LEVEL_LOW>;
234                  */
235                 /*
236                  * Disable HW Reset because clock signal is daisy-chained
237                  *
238                  * reset-gpios = <&main_gpio0 20 GPIO_ACTIVE_LOW>;
239                  * reset-assert-us = <1>;
240                  * reset-deassert-us = <30>;
241                  */
242         };
243 
244         ethernet_phy2: ethernet-phy@f {
245                 compatible = "ethernet-phy-id2000.a0f1";
246                 reg = <0xf>;
247                 pinctrl-names = "default";
248                 pinctrl-0 = <&ethernet_phy2_default_pins>;
249                 ti,op-mode = <DP83869_RGMII_COPPER_ETHERNET>;
250                 /*
251                  * Disable interrupts because ISR never clears 0x0040
252                  *
253                  * interrupt-parent = <&main_gpio1>;
254                  * interrupts = <70 IRQ_TYPE_LEVEL_LOW>;
255                  */
256                 /*
257                  * Disable HW Reset because clock signal is daisy-chained
258                  *
259                  * reset-gpios = <&main_gpio0 52 GPIO_ACTIVE_LOW>;
260                  * reset-assert-us = <1>;
261                  * reset-deassert-us = <30>;
262                  */
263         };
264 };
265 
266 &mailbox0_cluster2 {
267         status = "okay";
268 
269         mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
270                 ti,mbox-rx = <0 0 2>;
271                 ti,mbox-tx = <1 0 2>;
272         };
273 
274         mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
275                 ti,mbox-rx = <2 0 2>;
276                 ti,mbox-tx = <3 0 2>;
277         };
278 };
279 
280 &mailbox0_cluster4 {
281         status = "okay";
282 
283         mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
284                 ti,mbox-rx = <0 0 2>;
285                 ti,mbox-tx = <1 0 2>;
286         };
287 
288         mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
289                 ti,mbox-rx = <2 0 2>;
290                 ti,mbox-tx = <3 0 2>;
291         };
292 };
293 
294 &main_i2c0 {
295         pinctrl-names = "default";
296         pinctrl-0 = <&main_i2c0_default_pins>;
297         status = "okay";
298 
299         som_eeprom: eeprom@50 {
300                 compatible = "atmel,24c01";
301                 reg = <0x50>;
302                 pagesize = <8>;
303         };
304 };
305 
306 &main_pmx0 {
307         /* hog global functions */
308         pinctrl-names = "default";
309         pinctrl-0 = <&ethernet_phy_default_pins>;
310 
311         ethernet_phy_default_pins: ethernet-phy-default-pins {
312                 pinctrl-single,pins = <
313                         /* interrupt / power-down, external pull-up on SoM */
314                         AM64X_IOPAD(0x0278, PIN_INPUT, 7) /* EXTINTn.GPIO1_70 */
315                 >;
316         };
317 
318         ethernet_phy0_default_pins: ethernet-phy0-default-pins {
319                 pinctrl-single,pins = <
320                         /* reset */
321                         AM64X_IOPAD(0x0154, PIN_OUTPUT, 7) /* PRG1_PRU1_GPO19.GPIO0_84 */
322                         /* reference clock */
323                         AM64X_IOPAD(0x0274, PIN_OUTPUT, 5) /* EXT_REFCLK1.CLKOUT0 */
324                 >;
325         };
326 
327         ethernet_phy1_default_pins: ethernet-phy1-default-pins {
328                 pinctrl-single,pins = <
329                         /* reset */
330                         AM64X_IOPAD(0x0150, PIN_OUTPUT, 7) /* PRG1_PRU1_GPO18.GPIO0_20 */
331                         /* led0, external pull-down on SoM */
332                         AM64X_IOPAD(0x0128, PIN_INPUT, 7) /* PRG1_PRU1_GPO8.GPIO0_73 */
333                         /* led1/rxer */
334                         AM64X_IOPAD(0x011c, PIN_INPUT, 7) /* PRG1_PRU1_GPO5.GPIO0_70 */
335                 >;
336         };
337 
338         ethernet_phy2_default_pins: ethernet-phy2-default-pins {
339                 pinctrl-single,pins = <
340                         /* reset */
341                         AM64X_IOPAD(0x00d4, PIN_OUTPUT, 7) /* PRG1_PRU0_GPO7.GPIO0_52 */
342                         /* led0, external pull-down on SoM */
343                         AM64X_IOPAD(0x00d8, PIN_INPUT, 7) /* PRG1_PRU0_GPO8.GPIO0_53 */
344                         /* led1/rxer */
345                         AM64X_IOPAD(0x00cc, PIN_INPUT, 7) /* PRG1_PRU0_GPO5.GPIO0_50 */
346                 >;
347         };
348 
349         main_i2c0_default_pins: main-i2c0-default-pins {
350                 pinctrl-single,pins = <
351                         /* external pull-up on SoM */
352                         AM64X_IOPAD(0x0260, PIN_INPUT, 0) /* I2C0_SCL.I2C0_SCL */
353                         AM64X_IOPAD(0x0264, PIN_INPUT, 0) /* I2C0_SDA.I2C0_SDA */
354                 >;
355         };
356 
357         /*
358          * main_mmc0_default_pins: main-mmc0-default-pins
359          *
360          * MMC0_CMD: no padconfig
361          * MMC0_CLK: no padconfig, external pull-up on SoM
362          * MMC0_DAT0: no padconfig
363          * MMC0_DAT1: no padconfig
364          * MMC0_DAT2: no padconfig
365          * MMC0_DAT3: no padconfig
366          * MMC0_DAT4: no padconfig
367          * MMC0_DAT5: no padconfig
368          * MMC0_DAT6: no padconfig
369          * MMC0_DAT7: no padconfig
370          * MMC0_DS: no padconfig, external pull-down on SoM
371          */
372 
373         main_mmc1_default_pins: main-mmc1-default-pins {
374                 pinctrl-single,pins = <
375                         AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
376                         AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* MMC1_CLK.MMC1_CLK */
377                         AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* MMC1_DAT0.MMC1_DAT0 */
378                         AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* MMC1_DAT1.MMC1_DAT1 */
379                         AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* MMC1_DAT2.MMC1_DAT2 */
380                         AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* MMC1_DAT3.MMC1_DAT3 */
381                         /* external pull-down on SoM & Carrier */
382                         AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* MMC1_SDCD.MMC1_SDCD */
383                         AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB: clock loopback */
384                 >;
385         };
386 
387         main_uart0_default_pins: main-uart0-default-pins {
388                 pinctrl-single,pins = <
389                         AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* UART0_RXD.UART0_RXD */
390                         AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* UART0_TXD.UART0_TXD */
391                 >;
392         };
393 
394         mdio0_default_pins: mdio0-default-pins {
395                 pinctrl-single,pins = <
396                         AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* PRG0_PRU1_GPO19.MDIO0_MDC */
397                         AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* PRG0_PRU1_GPO18.MDIO0_MDIO */
398                 >;
399         };
400 
401         ospi0_default_pins: ospi0-default-pins {
402                 pinctrl-single,pins = <
403                         /* external pull-down on SoM */
404                         AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* OSPI0_CLK.OSPI0_CLK */
405                         AM64X_IOPAD(0x0008, PIN_OUTPUT, 0) /* OSPI0_DQS.OSPI0_DQS */
406                         /* external pull-up on SoM */
407                         AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* OSPI0_CSn0.OSPI0_CSn0 */
408                         AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* OSPI0_D0.OSPI0_D0 */
409                         AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* OSPI0_D1.OSPI0_D1 */
410                         AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* OSPI0_D2.OSPI0_D2 */
411                         AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* OSPI0_D3.OSPI0_D3 */
412                         AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* OSPI0_D4.OSPI0_D4 */
413                         AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* OSPI0_D5.OSPI0_D5 */
414                         AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* OSPI0_D6.OSPI0_D6 */
415                         AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* OSPI0_D7.OSPI0_D7 */
416                 >;
417         };
418 
419         ospi0_flash0_default_pins: ospi0-flash0-default-pins {
420                 pinctrl-single,pins = <
421                         AM64X_IOPAD(0x0034, PIN_OUTPUT, 7) /* OSPI0_CSn2.GPIO0_13 */
422                         AM64X_IOPAD(0x0038, PIN_INPUT, 7) /* OSPI0_CSn3.GPIO0_14 */
423                 >;
424         };
425 
426         pru1_mdio0_default_pins: pru1-mdio0-default-pins {
427                 pinctrl-single,pins = <
428                         AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* PRG1_MDIO0_MDC.PRG1_MDIO0_MDC */
429                         AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* PRG1_MDIO0_MDIO.PRG1_MDIO0_MDIO */
430                 >;
431         };
432 
433         pru_rgmii1_default_pins: pru-rgmii1-default-pins {
434                 pinctrl-single,pins = <
435                         AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
436                         AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
437                         AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
438                         AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
439                         AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
440                         AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
441                         AM64X_IOPAD(0x00e4, PIN_OUTPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
442                         AM64X_IOPAD(0x00e8, PIN_OUTPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
443                         AM64X_IOPAD(0x00ec, PIN_OUTPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
444                         AM64X_IOPAD(0x00f0, PIN_OUTPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
445                         AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
446                         AM64X_IOPAD(0x00f4, PIN_OUTPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
447                 >;
448         };
449 
450         pru_rgmii2_default_pins: pru-rgmii2-default-pins {
451                 pinctrl-single,pins = <
452                         AM64X_IOPAD(0x0108, PIN_INPUT, 2) /* PRG1_PRU1_GPO0.RGMII2_RD0 */
453                         AM64X_IOPAD(0x010c, PIN_INPUT, 2) /* PRG1_PRU1_GPO1.RGMII2_RD1 */
454                         AM64X_IOPAD(0x0110, PIN_INPUT, 2) /* PRG1_PRU1_GPO2.RGMII2_RD2 */
455                         AM64X_IOPAD(0x0114, PIN_INPUT, 2) /* PRG1_PRU1_GPO3.RGMII2_RD3 */
456                         AM64X_IOPAD(0x0120, PIN_INPUT, 2) /* PRG1_PRU1_GPO6.RGMII2_RXC */
457                         AM64X_IOPAD(0x0118, PIN_INPUT, 2) /* PRG1_PRU1_GPO4.RGMII2_RX_CTL */
458                         AM64X_IOPAD(0x0134, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO11.RGMII2_TD0 */
459                         AM64X_IOPAD(0x0138, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO12.RGMII2_TD1 */
460                         AM64X_IOPAD(0x013c, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO13.RGMII2_TD2 */
461                         AM64X_IOPAD(0x0140, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO14.RGMII2_TD3 */
462                         AM64X_IOPAD(0x0148, PIN_INPUT, 2) /* PRG1_PRU1_GPO16.RGMII2_TXC */
463                         AM64X_IOPAD(0x0144, PIN_OUTPUT, 2) /* PRG1_PRU1_GPO15.RGMII2_TX_CTL */
464                 >;
465         };
466 
467         rgmii1_default_pins: rgmii1-default-pins {
468                 pinctrl-single,pins = <
469                         AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* PRG0_PRU1_GPO7.RGMII1_RD0 */
470                         AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* PRG0_PRU1_GPO9.RGMII1_RD1 */
471                         AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* PRG0_PRU1_GPO10.RGMII1_RD2 */
472                         AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* PRG0_PRU1_GPO17.RGMII1_RD3 */
473                         AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* PRG0_PRU0_GPO10.RGMII1_RXC */
474                         AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* PRG0_PRU0_GPO9.RGMII1_RX_CTL */
475                         AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO7.RGMII1_TD0 */
476                         AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO9.RGMII1_TD1 */
477                         AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO10.RGMII1_TD2 */
478                         AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* PRG1_PRU1_GPO17.RGMII1_TD3 */
479                         AM64X_IOPAD(0x00e0, PIN_INPUT, 4) /* PRG1_PRU0_GPO10.RGMII1_TXC */
480                         AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* PRG1_PRU0_GPO9.RGMII1_TX_CTL */
481                 >;
482         };
483 
484         usb0_default_pins: usb0-default-pins {
485                 pinctrl-single,pins = <
486                         AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* USB0_DRVVBUS.USB0_DRVVBUS */
487                 >;
488         };
489 };
490 
491 &main_r5fss0_core0 {
492         mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
493         memory-region = <&main_r5fss0_core0_dma_memory_region>,
494                         <&main_r5fss0_core0_memory_region>;
495 };
496 
497 &main_r5fss0_core1 {
498         mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
499         memory-region = <&main_r5fss0_core1_dma_memory_region>,
500                         <&main_r5fss0_core1_memory_region>;
501 };
502 
503 &main_r5fss1_core0 {
504         mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
505         memory-region = <&main_r5fss1_core0_dma_memory_region>,
506                         <&main_r5fss1_core0_memory_region>;
507 };
508 
509 &main_r5fss1_core1 {
510         mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
511         memory-region = <&main_r5fss1_core1_dma_memory_region>,
512                         <&main_r5fss1_core1_memory_region>;
513 };
514 
515 /* SoC default UART console */
516 &main_uart0 {
517         pinctrl-names = "default";
518         pinctrl-0 = <&main_uart0_default_pins>;
519         status = "okay";
520 };
521 
522 &ospi0 {
523         pinctrl-names = "default";
524         pinctrl-0 = <&ospi0_default_pins>;
525         num-cs = <1>;
526         status = "okay";
527 
528         flash@0 {
529                 compatible = "jedec,spi-nor";
530                 reg = <0>;
531                 pinctrl-names = "default";
532                 pinctrl-0 = <&ospi0_flash0_default_pins>;
533                 spi-tx-bus-width = <8>;
534                 spi-rx-bus-width = <8>;
535                 spi-max-frequency = <200000000>;
536                 cdns,tshsl-ns = <50>;
537                 cdns,tsd2d-ns = <50>;
538                 cdns,tchsh-ns = <4>;
539                 cdns,tslch-ns = <4>;
540                 cdns,read-delay = <0>;
541                 interrupt-parent = <&main_gpio0>;
542                 interrupts = <14 IRQ_TYPE_LEVEL_LOW>;
543                 reset-gpios = <&main_gpio0 13 GPIO_ACTIVE_LOW>;
544         };
545 };
546 
547 &sdhci0 {
548         /* mmc0 pins have no padconfig */
549         bus-width = <8>;
550         ti,driver-strength-ohm = <50>;
551         disable-wp;
552         non-removable;
553         cap-mmc-hw-reset;
554         no-sd;
555         /*
556          * MMC controller supports switching between 1.8V and 3.3V signalling.
557          * However MMC0 (unlike MMC1) does not integrate an LDO.
558          * Explicitly link a regulator node for indicating to the driver which
559          * voltages are actually usable.
560          */
561         vqmmc-supply = <&vdd_mmc0>;
562         status = "okay";
563 };
564 
565 /*
566  * microSD is on carrier - however since SoC can boot from it,
567  * configure it just in case.
568  */
569 &sdhci1 {
570         pinctrl-names = "default";
571         pinctrl-0 = <&main_mmc1_default_pins>;
572         bus-width = <4>;
573         ti,driver-strength-ohm = <50>;
574         disable-wp;
575         status = "okay";
576 };
577 
578 /*
579  * USB settings are a carrier choice - however since SoC can boot from it,
580  * configure as USB-2.0 OTG here, keeping USB-3 serdes disabled.
581  */
582 &usb0 {
583         pinctrl-names = "default";
584         pinctrl-0 = <&usb0_default_pins>;
585         dr_mode = "otg";
586         maximum-speed = "high-speed";
587 };
588 
589 &usbss0 {
590         ti,vbus-divider;
591         ti,usb2-only;
592 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php