| // SPDX-License-Identifier: GPL-2.0-only | 
| /* | 
|  * Device Tree for DA850 EVM board | 
|  * | 
|  * Copyright (C) 2012 Texas Instruments Incorporated - https://www.ti.com/ | 
|  */ | 
| /dts-v1/; | 
| #include "da850.dtsi" | 
| #include <dt-bindings/gpio/gpio.h> | 
|   | 
| / { | 
|     compatible = "ti,da850-evm", "ti,da850"; | 
|     model = "DA850/AM1808/OMAP-L138 EVM"; | 
|   | 
|     chosen { | 
|         stdout-path = &serial2; | 
|     }; | 
|   | 
|     aliases { | 
|         serial0 = &serial0; | 
|         serial1 = &serial1; | 
|         serial2 = &serial2; | 
|         ethernet0 = ð0; | 
|         spi0 = &spi1; | 
|     }; | 
|   | 
|     backlight: backlight-pwm { | 
|         pinctrl-names = "default"; | 
|         pinctrl-0 = <&ecap2_pins>; | 
|         power-supply = <&backlight_lcd>; | 
|         compatible = "pwm-backlight"; | 
|         /* | 
|          * The PWM here corresponds to production hardware. The | 
|          * schematic needs to be 1015171 (15 March 2010), Rev A | 
|          * or newer. | 
|          */ | 
|         pwms = <&ecap2 0 50000 0>; | 
|         brightness-levels = <0 10 20 30 40 50 60 70 80 90 99>; | 
|         default-brightness-level = <7>; | 
|     }; | 
|   | 
|     panel { | 
|         compatible = "ti,tilcdc,panel"; | 
|         pinctrl-names = "default"; | 
|         pinctrl-0 = <&lcd_pins>; | 
|         /* | 
|          * The vpif and the LCD are mutually exclusive. | 
|          * To enable VPIF, change the status below to 'disabled' then | 
|          * then change the status of the vpif below to 'okay' | 
|          */ | 
|         status = "okay"; | 
|         enable-gpios = <&gpio 40 GPIO_ACTIVE_HIGH>; /* lcd_panel_pwr */ | 
|   | 
|         panel-info { | 
|             ac-bias        = <255>; | 
|             ac-bias-intrpt    = <0>; | 
|             dma-burst-sz    = <16>; | 
|             bpp        = <16>; | 
|             fdd        = <0x80>; | 
|             sync-edge    = <0>; | 
|             sync-ctrl    = <1>; | 
|             raster-order    = <0>; | 
|             fifo-th        = <0>; | 
|         }; | 
|   | 
|         display-timings { | 
|             native-mode = <&timing0>; | 
|             timing0: 480x272 { | 
|                 clock-frequency = <9000000>; | 
|                 hactive = <480>; | 
|                 vactive = <272>; | 
|                 hfront-porch = <3>; | 
|                 hback-porch = <2>; | 
|                 hsync-len = <42>; | 
|                 vback-porch = <3>; | 
|                 vfront-porch = <4>; | 
|                 vsync-len = <11>; | 
|                 hsync-active = <0>; | 
|                 vsync-active = <0>; | 
|                 de-active = <1>; | 
|                 pixelclk-active = <1>; | 
|             }; | 
|         }; | 
|     }; | 
|   | 
|     vbat: fixedregulator0 { | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "vbat"; | 
|         regulator-min-microvolt = <5000000>; | 
|         regulator-max-microvolt = <5000000>; | 
|         regulator-boot-on; | 
|     }; | 
|   | 
|     baseboard_3v3: fixedregulator-3v3 { | 
|         /* TPS73701DCQ */ | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "baseboard_3v3"; | 
|         regulator-min-microvolt = <3300000>; | 
|         regulator-max-microvolt = <3300000>; | 
|         vin-supply = <&vbat>; | 
|         regulator-always-on; | 
|         regulator-boot-on; | 
|     }; | 
|   | 
|     baseboard_1v8: fixedregulator-1v8 { | 
|         /* TPS73701DCQ */ | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "baseboard_1v8"; | 
|         regulator-min-microvolt = <1800000>; | 
|         regulator-max-microvolt = <1800000>; | 
|         vin-supply = <&vbat>; | 
|         regulator-always-on; | 
|         regulator-boot-on; | 
|     }; | 
|   | 
|     backlight_lcd: backlight-regulator { | 
|         compatible = "regulator-fixed"; | 
|         regulator-name = "lcd_backlight_pwr"; | 
|         regulator-min-microvolt = <3300000>; | 
|         regulator-max-microvolt = <3300000>; | 
|         gpio = <&gpio 47 GPIO_ACTIVE_HIGH>; /* lcd_backlight_pwr */ | 
|         enable-active-high; | 
|     }; | 
|   | 
|     sound { | 
|         compatible = "simple-audio-card"; | 
|         simple-audio-card,name = "DA850-OMAPL138 EVM"; | 
|         simple-audio-card,widgets = | 
|             "Line", "Line In", | 
|             "Line", "Line Out"; | 
|         simple-audio-card,routing = | 
|             "LINE1L", "Line In", | 
|             "LINE1R", "Line In", | 
|             "Line Out", "LLOUT", | 
|             "Line Out", "RLOUT"; | 
|         simple-audio-card,format = "dsp_b"; | 
|         simple-audio-card,bitclock-master = <&link0_codec>; | 
|         simple-audio-card,frame-master = <&link0_codec>; | 
|         simple-audio-card,bitclock-inversion; | 
|   | 
|         simple-audio-card,cpu { | 
|             sound-dai = <&mcasp0>; | 
|             system-clock-frequency = <24576000>; | 
|         }; | 
|   | 
|         link0_codec: simple-audio-card,codec { | 
|             sound-dai = <&tlv320aic3106>; | 
|             system-clock-frequency = <24576000>; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &ecap2 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &ref_clk { | 
|     clock-frequency = <24000000>; | 
| }; | 
|   | 
| &pmx_core { | 
|     status = "okay"; | 
|   | 
|     mcasp0_pins: pinmux_mcasp0_pins { | 
|         pinctrl-single,bits = < | 
|             /* | 
|              * AHCLKX, ACLKX, AFSX, AHCLKR, ACLKR, | 
|              * AFSR, AMUTE | 
|              */ | 
|             0x00 0x11111111 0xffffffff | 
|             /* AXR11, AXR12 */ | 
|             0x04 0x00011000 0x000ff000 | 
|         >; | 
|     }; | 
|     nand_pins: nand_pins { | 
|         pinctrl-single,bits = < | 
|             /* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[4], EMA_CS[3] */ | 
|             0x1c 0x10110110  0xf0ff0ff0 | 
|             /* | 
|              * EMA_D[0], EMA_D[1], EMA_D[2], | 
|              * EMA_D[3], EMA_D[4], EMA_D[5], | 
|              * EMA_D[6], EMA_D[7] | 
|              */ | 
|             0x24 0x11111111  0xffffffff | 
|             /* EMA_A[1], EMA_A[2] */ | 
|             0x30 0x01100000  0x0ff00000 | 
|         >; | 
|     }; | 
| }; | 
|   | 
| &cpu { | 
|     cpu-supply = <&vdcdc3_reg>; | 
| }; | 
|   | 
| /* | 
|  * The standard da850-evm kits and SOM's are 375MHz so enable this operating | 
|  * point by default. Higher frequencies must be enabled for custom boards with | 
|  * other variants of the SoC. | 
|  */ | 
| &opp_375 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &sata { | 
|     status = "okay"; | 
| }; | 
|   | 
| &serial0 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &serial1 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &serial2 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &rtc0 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &lcdc { | 
|     status = "okay"; | 
| }; | 
|   | 
| &i2c0 { | 
|     status = "okay"; | 
|     clock-frequency = <100000>; | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&i2c0_pins>; | 
|   | 
|     tps: tps@48 { | 
|         reg = <0x48>; | 
|     }; | 
|     tlv320aic3106: tlv320aic3106@18 { | 
|         #sound-dai-cells = <0>; | 
|         compatible = "ti,tlv320aic3106"; | 
|         reg = <0x18>; | 
|         status = "okay"; | 
|   | 
|         /* Regulators */ | 
|         IOVDD-supply = <&vdcdc2_reg>; | 
|         AVDD-supply = <&baseboard_3v3>; | 
|         DRVDD-supply = <&baseboard_3v3>; | 
|         DVDD-supply = <&baseboard_1v8>; | 
|     }; | 
|     tca6416: gpio@20 { | 
|         compatible = "ti,tca6416"; | 
|         reg = <0x20>; | 
|         gpio-controller; | 
|         #gpio-cells = <2>; | 
|     }; | 
|     tca6416_bb: gpio@21 { | 
|         compatible = "ti,tca6416"; | 
|         reg = <0x21>; | 
|         gpio-controller; | 
|         #gpio-cells = <2>; | 
|     }; | 
| }; | 
|   | 
| &wdt { | 
|     status = "okay"; | 
| }; | 
|   | 
| &mmc0 { | 
|     max-frequency = <50000000>; | 
|     bus-width = <4>; | 
|     status = "okay"; | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&mmc0_pins>; | 
|     cd-gpios = <&gpio 64 GPIO_ACTIVE_LOW>; | 
|     wp-gpios = <&gpio 65 GPIO_ACTIVE_HIGH>; | 
| }; | 
|   | 
| &spi1 { | 
|     status = "okay"; | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&spi1_pins &spi1_cs0_pin>; | 
|     flash: m25p80@0 { | 
|         #address-cells = <1>; | 
|         #size-cells = <1>; | 
|         compatible = "jedec,spi-nor"; | 
|         spi-max-frequency = <30000000>; | 
|         m25p,fast-read; | 
|         reg = <0>; | 
|         partition@0 { | 
|             label = "U-Boot-SPL"; | 
|             reg = <0x00000000 0x00010000>; | 
|             read-only; | 
|         }; | 
|         partition@1 { | 
|             label = "U-Boot"; | 
|             reg = <0x00010000 0x00080000>; | 
|             read-only; | 
|         }; | 
|         partition@2 { | 
|             label = "U-Boot-Env"; | 
|             reg = <0x00090000 0x00010000>; | 
|             read-only; | 
|         }; | 
|         partition@3 { | 
|             label = "Kernel"; | 
|             reg = <0x000a0000 0x00280000>; | 
|         }; | 
|         partition@4 { | 
|             label = "Filesystem"; | 
|             reg = <0x00320000 0x00400000>; | 
|         }; | 
|         partition@5 { | 
|             label = "MAC-Address"; | 
|             reg = <0x007f0000 0x00010000>; | 
|             read-only; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &mdio { | 
|     status = "okay"; | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&mdio_pins>; | 
|     bus_freq = <2200000>; | 
| }; | 
|   | 
| ð0 { | 
|     status = "okay"; | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&mii_pins>; | 
| }; | 
|   | 
| &gpio { | 
|     status = "okay"; | 
| }; | 
|   | 
| /include/ "tps6507x.dtsi" | 
|   | 
| &tps { | 
|     vdcdc1_2-supply = <&vbat>; | 
|     vdcdc3-supply = <&vbat>; | 
|     vldo1_2-supply = <&vbat>; | 
|   | 
|     regulators { | 
|         vdcdc1_reg: regulator@0 { | 
|             regulator-name = "VDCDC1_3.3V"; | 
|             regulator-min-microvolt = <3150000>; | 
|             regulator-max-microvolt = <3450000>; | 
|             regulator-always-on; | 
|             regulator-boot-on; | 
|         }; | 
|   | 
|         vdcdc2_reg: regulator@1 { | 
|             regulator-name = "VDCDC2_3.3V"; | 
|             regulator-min-microvolt = <1710000>; | 
|             regulator-max-microvolt = <3450000>; | 
|             regulator-always-on; | 
|             regulator-boot-on; | 
|             ti,defdcdc_default = <1>; | 
|         }; | 
|   | 
|         vdcdc3_reg: regulator@2 { | 
|             regulator-name = "VDCDC3_1.2V"; | 
|             regulator-min-microvolt = <950000>; | 
|             regulator-max-microvolt = <1350000>; | 
|             regulator-always-on; | 
|             regulator-boot-on; | 
|             ti,defdcdc_default = <1>; | 
|         }; | 
|   | 
|         ldo1_reg: regulator@3 { | 
|             regulator-name = "LDO1_1.8V"; | 
|             regulator-min-microvolt = <1710000>; | 
|             regulator-max-microvolt = <1890000>; | 
|             regulator-always-on; | 
|             regulator-boot-on; | 
|         }; | 
|   | 
|         ldo2_reg: regulator@4 { | 
|             regulator-name = "LDO2_1.2V"; | 
|             regulator-min-microvolt = <1140000>; | 
|             regulator-max-microvolt = <1320000>; | 
|             regulator-always-on; | 
|             regulator-boot-on; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &mcasp0 { | 
|     #sound-dai-cells = <0>; | 
|     status = "okay"; | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&mcasp0_pins>; | 
|   | 
|     op-mode = <0>;          /* MCASP_IIS_MODE */ | 
|     tdm-slots = <2>; | 
|     /* 4 serializer */ | 
|     serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */ | 
|         0 0 0 0 | 
|         0 0 0 0 | 
|         0 0 0 1 | 
|         2 0 0 0 | 
|     >; | 
|     tx-num-evt = <32>; | 
|     rx-num-evt = <32>; | 
| }; | 
|   | 
| &edma0 { | 
|     ti,edma-reserved-slot-ranges = <32 50>; | 
| }; | 
|   | 
| &edma1 { | 
|     ti,edma-reserved-slot-ranges = <32 90>; | 
| }; | 
|   | 
| &aemif { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&nand_pins>; | 
|     status = "ok"; | 
|     cs3 { | 
|         #address-cells = <2>; | 
|         #size-cells = <1>; | 
|         clock-ranges; | 
|         ranges; | 
|   | 
|         ti,cs-chipselect = <3>; | 
|   | 
|         nand@2000000,0 { | 
|             compatible = "ti,davinci-nand"; | 
|             #address-cells = <1>; | 
|             #size-cells = <1>; | 
|             reg = <0 0x02000000 0x02000000 | 
|                    1 0x00000000 0x00008000>; | 
|   | 
|             ti,davinci-chipselect = <1>; | 
|             ti,davinci-mask-ale = <0>; | 
|             ti,davinci-mask-cle = <0>; | 
|             ti,davinci-mask-chipsel = <0>; | 
|             ti,davinci-ecc-mode = "hw"; | 
|             ti,davinci-ecc-bits = <4>; | 
|             ti,davinci-nand-use-bbt; | 
|         }; | 
|     }; | 
| }; | 
|   | 
| &usb_phy { | 
|     status = "okay"; | 
| }; | 
|   | 
| &usb0 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &usb1 { | 
|     status = "okay"; | 
| }; | 
|   | 
| &vpif { | 
|     pinctrl-names = "default"; | 
|     pinctrl-0 = <&vpif_capture_pins>, <&vpif_display_pins>; | 
|     /* | 
|      * The vpif and the LCD are mutually exclusive. | 
|      * To enable VPIF, disable the ti,tilcdc,panel then | 
|      * change the status below to 'okay' | 
|      */ | 
|     status = "disabled"; | 
| }; |