1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only 2724ba675SRob Herring/* 3724ba675SRob Herring * Copyright (c) 2016 BayLibre, Inc. 4724ba675SRob Herring */ 5724ba675SRob Herring/dts-v1/; 6724ba675SRob Herring#include "da850.dtsi" 7724ba675SRob Herring#include <dt-bindings/gpio/gpio.h> 8724ba675SRob Herring#include <dt-bindings/input/input.h> 9724ba675SRob Herring 10724ba675SRob Herring/ { 11724ba675SRob Herring model = "DA850/AM1808/OMAP-L138 LCDK"; 12724ba675SRob Herring compatible = "ti,da850-lcdk", "ti,da850"; 13724ba675SRob Herring 14724ba675SRob Herring aliases { 15724ba675SRob Herring serial2 = &serial2; 16724ba675SRob Herring ethernet0 = ð0; 17724ba675SRob Herring }; 18724ba675SRob Herring 19724ba675SRob Herring chosen { 20724ba675SRob Herring stdout-path = "serial2:115200n8"; 21724ba675SRob Herring }; 22724ba675SRob Herring 23724ba675SRob Herring memory@c0000000 { 24724ba675SRob Herring /* 128 MB DDR2 SDRAM @ 0xc0000000 */ 25724ba675SRob Herring reg = <0xc0000000 0x08000000>; 26724ba675SRob Herring }; 27724ba675SRob Herring 28724ba675SRob Herring reserved-memory { 29724ba675SRob Herring #address-cells = <1>; 30724ba675SRob Herring #size-cells = <1>; 31724ba675SRob Herring ranges; 32724ba675SRob Herring 33724ba675SRob Herring dsp_memory_region: dsp-memory@c3000000 { 34724ba675SRob Herring compatible = "shared-dma-pool"; 35724ba675SRob Herring reg = <0xc3000000 0x1000000>; 36724ba675SRob Herring reusable; 37724ba675SRob Herring status = "okay"; 38724ba675SRob Herring }; 39724ba675SRob Herring }; 40724ba675SRob Herring 41724ba675SRob Herring vcc_5vd: fixedregulator-vcc_5vd { 42724ba675SRob Herring compatible = "regulator-fixed"; 43724ba675SRob Herring regulator-name = "vcc_5vd"; 44724ba675SRob Herring regulator-min-microvolt = <5000000>; 45724ba675SRob Herring regulator-max-microvolt = <5000000>; 46724ba675SRob Herring regulator-boot-on; 47724ba675SRob Herring }; 48724ba675SRob Herring 49724ba675SRob Herring vcc_3v3d: fixedregulator-vcc_3v3d { 50724ba675SRob Herring /* TPS650250 - VDCDC1 */ 51724ba675SRob Herring compatible = "regulator-fixed"; 52724ba675SRob Herring regulator-name = "vcc_3v3d"; 53724ba675SRob Herring regulator-min-microvolt = <3300000>; 54724ba675SRob Herring regulator-max-microvolt = <3300000>; 55724ba675SRob Herring vin-supply = <&vcc_5vd>; 56724ba675SRob Herring regulator-always-on; 57724ba675SRob Herring regulator-boot-on; 58724ba675SRob Herring }; 59724ba675SRob Herring 60724ba675SRob Herring vcc_1v8d: fixedregulator-vcc_1v8d { 61724ba675SRob Herring /* TPS650250 - VDCDC2 */ 62724ba675SRob Herring compatible = "regulator-fixed"; 63724ba675SRob Herring regulator-name = "vcc_1v8d"; 64724ba675SRob Herring regulator-min-microvolt = <1800000>; 65724ba675SRob Herring regulator-max-microvolt = <1800000>; 66724ba675SRob Herring vin-supply = <&vcc_5vd>; 67724ba675SRob Herring regulator-always-on; 68724ba675SRob Herring regulator-boot-on; 69724ba675SRob Herring }; 70724ba675SRob Herring 71724ba675SRob Herring sound { 72724ba675SRob Herring compatible = "simple-audio-card"; 73724ba675SRob Herring simple-audio-card,name = "DA850-OMAPL138 LCDK"; 74724ba675SRob Herring simple-audio-card,widgets = 75724ba675SRob Herring "Line", "Line In", 76724ba675SRob Herring "Line", "Line Out", 77724ba675SRob Herring "Microphone", "Mic Jack"; 78724ba675SRob Herring simple-audio-card,routing = 79724ba675SRob Herring "LINE1L", "Line In", 80724ba675SRob Herring "LINE1R", "Line In", 81724ba675SRob Herring "Line Out", "LLOUT", 82724ba675SRob Herring "Line Out", "RLOUT", 83724ba675SRob Herring "MIC3L", "Mic Jack", 84724ba675SRob Herring "MIC3R", "Mic Jack", 85724ba675SRob Herring "Mic Jack", "Mic Bias"; 86724ba675SRob Herring simple-audio-card,format = "dsp_b"; 87724ba675SRob Herring simple-audio-card,bitclock-master = <&link0_codec>; 88724ba675SRob Herring simple-audio-card,frame-master = <&link0_codec>; 89724ba675SRob Herring simple-audio-card,bitclock-inversion; 90724ba675SRob Herring 91724ba675SRob Herring simple-audio-card,cpu { 92724ba675SRob Herring sound-dai = <&mcasp0>; 93724ba675SRob Herring system-clock-frequency = <24576000>; 94724ba675SRob Herring }; 95724ba675SRob Herring 96724ba675SRob Herring link0_codec: simple-audio-card,codec { 97724ba675SRob Herring sound-dai = <&tlv320aic3106>; 98724ba675SRob Herring system-clock-frequency = <24576000>; 99724ba675SRob Herring }; 100724ba675SRob Herring }; 101724ba675SRob Herring 102724ba675SRob Herring gpio-keys { 103724ba675SRob Herring compatible = "gpio-keys"; 104724ba675SRob Herring autorepeat; 105724ba675SRob Herring 106724ba675SRob Herring user1 { 107724ba675SRob Herring label = "GPIO Key USER1"; 108724ba675SRob Herring linux,code = <BTN_0>; 109724ba675SRob Herring gpios = <&gpio 36 GPIO_ACTIVE_LOW>; 110724ba675SRob Herring }; 111724ba675SRob Herring 112724ba675SRob Herring user2 { 113724ba675SRob Herring label = "GPIO Key USER2"; 114724ba675SRob Herring linux,code = <BTN_1>; 115724ba675SRob Herring gpios = <&gpio 37 GPIO_ACTIVE_LOW>; 116724ba675SRob Herring }; 117724ba675SRob Herring }; 118724ba675SRob Herring 119724ba675SRob Herring vga-bridge { 120724ba675SRob Herring compatible = "ti,ths8135"; 121724ba675SRob Herring #address-cells = <1>; 122724ba675SRob Herring #size-cells = <0>; 123724ba675SRob Herring 124724ba675SRob Herring ports { 125724ba675SRob Herring #address-cells = <1>; 126724ba675SRob Herring #size-cells = <0>; 127724ba675SRob Herring 128724ba675SRob Herring port@0 { 129724ba675SRob Herring reg = <0>; 130724ba675SRob Herring 131724ba675SRob Herring vga_bridge_in: endpoint { 132724ba675SRob Herring remote-endpoint = <&lcdc_out_vga>; 133724ba675SRob Herring }; 134724ba675SRob Herring }; 135724ba675SRob Herring 136724ba675SRob Herring port@1 { 137724ba675SRob Herring reg = <1>; 138724ba675SRob Herring 139724ba675SRob Herring vga_bridge_out: endpoint { 140724ba675SRob Herring remote-endpoint = <&vga_con_in>; 141724ba675SRob Herring }; 142724ba675SRob Herring }; 143724ba675SRob Herring }; 144724ba675SRob Herring }; 145724ba675SRob Herring 146724ba675SRob Herring vga { 147724ba675SRob Herring compatible = "vga-connector"; 148724ba675SRob Herring 149724ba675SRob Herring ddc-i2c-bus = <&i2c0>; 150724ba675SRob Herring 151724ba675SRob Herring port { 152724ba675SRob Herring vga_con_in: endpoint { 153724ba675SRob Herring remote-endpoint = <&vga_bridge_out>; 154724ba675SRob Herring }; 155724ba675SRob Herring }; 156724ba675SRob Herring }; 157724ba675SRob Herring 158724ba675SRob Herring cvdd: regulator0 { 159724ba675SRob Herring compatible = "regulator-fixed"; 160724ba675SRob Herring regulator-name = "cvdd"; 161724ba675SRob Herring regulator-min-microvolt = <1300000>; 162724ba675SRob Herring regulator-max-microvolt = <1300000>; 163724ba675SRob Herring regulator-always-on; 164724ba675SRob Herring regulator-boot-on; 165724ba675SRob Herring }; 166724ba675SRob Herring}; 167724ba675SRob Herring 168724ba675SRob Herring&ref_clk { 169724ba675SRob Herring clock-frequency = <24000000>; 170724ba675SRob Herring}; 171724ba675SRob Herring 172724ba675SRob Herring&cpu { 173724ba675SRob Herring cpu-supply = <&cvdd>; 174724ba675SRob Herring}; 175724ba675SRob Herring 176724ba675SRob Herring/* 177724ba675SRob Herring * LCDK has a fixed CVDD of 1.3V, so only operating points >= 300MHz are 178724ba675SRob Herring * valid. Unfortunately due to a problem with the DA8XX OHCI controller, we 179724ba675SRob Herring * can't enable more than one OPP by default, since the controller sometimes 180724ba675SRob Herring * becomes unresponsive after a transition. Fix the frequency at 456 MHz. 181724ba675SRob Herring */ 182724ba675SRob Herring 183724ba675SRob Herring&opp_100 { 184724ba675SRob Herring status = "disabled"; 185724ba675SRob Herring}; 186724ba675SRob Herring 187724ba675SRob Herring&opp_200 { 188724ba675SRob Herring status = "disabled"; 189724ba675SRob Herring}; 190724ba675SRob Herring 191724ba675SRob Herring&opp_300 { 192724ba675SRob Herring status = "disabled"; 193724ba675SRob Herring}; 194724ba675SRob Herring 195724ba675SRob Herring&opp_456 { 196724ba675SRob Herring status = "okay"; 197724ba675SRob Herring}; 198724ba675SRob Herring 199724ba675SRob Herring&pmx_core { 200724ba675SRob Herring status = "okay"; 201724ba675SRob Herring 202*d49b1e4fSTony Lindgren mcasp0_pins: mcasp0-pins { 203724ba675SRob Herring pinctrl-single,bits = < 204724ba675SRob Herring /* AHCLKX AFSX ACLKX */ 205724ba675SRob Herring 0x00 0x00101010 0x00f0f0f0 206724ba675SRob Herring /* ARX13 ARX14 */ 207724ba675SRob Herring 0x04 0x00000110 0x00000ff0 208724ba675SRob Herring >; 209724ba675SRob Herring }; 210724ba675SRob Herring 211*d49b1e4fSTony Lindgren nand_pins: nand-pins { 212724ba675SRob Herring pinctrl-single,bits = < 213724ba675SRob Herring /* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[3] */ 214724ba675SRob Herring 0x1c 0x10110010 0xf0ff00f0 215724ba675SRob Herring /* 216724ba675SRob Herring * EMA_D[0], EMA_D[1], EMA_D[2], 217724ba675SRob Herring * EMA_D[3], EMA_D[4], EMA_D[5], 218724ba675SRob Herring * EMA_D[6], EMA_D[7] 219724ba675SRob Herring */ 220724ba675SRob Herring 0x24 0x11111111 0xffffffff 221724ba675SRob Herring /* 222724ba675SRob Herring * EMA_D[8], EMA_D[9], EMA_D[10], 223724ba675SRob Herring * EMA_D[11], EMA_D[12], EMA_D[13], 224724ba675SRob Herring * EMA_D[14], EMA_D[15] 225724ba675SRob Herring */ 226724ba675SRob Herring 0x20 0x11111111 0xffffffff 227724ba675SRob Herring /* EMA_A[1], EMA_A[2] */ 228724ba675SRob Herring 0x30 0x01100000 0x0ff00000 229724ba675SRob Herring >; 230724ba675SRob Herring }; 231724ba675SRob Herring}; 232724ba675SRob Herring 233724ba675SRob Herring&serial2 { 234724ba675SRob Herring pinctrl-names = "default"; 235724ba675SRob Herring pinctrl-0 = <&serial2_rxtx_pins>; 236724ba675SRob Herring status = "okay"; 237724ba675SRob Herring}; 238724ba675SRob Herring 239724ba675SRob Herring&wdt { 240724ba675SRob Herring status = "okay"; 241724ba675SRob Herring}; 242724ba675SRob Herring 243724ba675SRob Herring&rtc0 { 244724ba675SRob Herring status = "okay"; 245724ba675SRob Herring}; 246724ba675SRob Herring 247724ba675SRob Herring&gpio { 248724ba675SRob Herring status = "okay"; 249724ba675SRob Herring}; 250724ba675SRob Herring 251724ba675SRob Herring&sata_refclk { 252724ba675SRob Herring status = "okay"; 253724ba675SRob Herring clock-frequency = <100000000>; 254724ba675SRob Herring}; 255724ba675SRob Herring 256724ba675SRob Herring&sata { 257724ba675SRob Herring status = "okay"; 258724ba675SRob Herring}; 259724ba675SRob Herring 260724ba675SRob Herring&mdio { 261724ba675SRob Herring pinctrl-names = "default"; 262724ba675SRob Herring pinctrl-0 = <&mdio_pins>; 263724ba675SRob Herring bus_freq = <2200000>; 264724ba675SRob Herring status = "okay"; 265724ba675SRob Herring}; 266724ba675SRob Herring 267724ba675SRob Herringð0 { 268724ba675SRob Herring pinctrl-names = "default"; 269724ba675SRob Herring pinctrl-0 = <&mii_pins>; 270724ba675SRob Herring status = "okay"; 271724ba675SRob Herring}; 272724ba675SRob Herring 273724ba675SRob Herring&mmc0 { 274724ba675SRob Herring max-frequency = <50000000>; 275724ba675SRob Herring bus-width = <4>; 276724ba675SRob Herring pinctrl-names = "default"; 277724ba675SRob Herring pinctrl-0 = <&mmc0_pins>; 278724ba675SRob Herring cd-gpios = <&gpio 64 GPIO_ACTIVE_LOW>; 279724ba675SRob Herring status = "okay"; 280724ba675SRob Herring}; 281724ba675SRob Herring 282724ba675SRob Herring&i2c0 { 283724ba675SRob Herring pinctrl-names = "default"; 284724ba675SRob Herring pinctrl-0 = <&i2c0_pins>; 285724ba675SRob Herring clock-frequency = <100000>; 286724ba675SRob Herring status = "okay"; 287724ba675SRob Herring 288724ba675SRob Herring tlv320aic3106: tlv320aic3106@18 { 289724ba675SRob Herring #sound-dai-cells = <0>; 290724ba675SRob Herring compatible = "ti,tlv320aic3106"; 291724ba675SRob Herring reg = <0x18>; 292724ba675SRob Herring adc-settle-ms = <40>; 293724ba675SRob Herring ai3x-micbias-vg = <1>; /* 2.0V */ 294724ba675SRob Herring status = "okay"; 295724ba675SRob Herring 296724ba675SRob Herring /* Regulators */ 297724ba675SRob Herring IOVDD-supply = <&vcc_3v3d>; 298724ba675SRob Herring AVDD-supply = <&vcc_3v3d>; 299724ba675SRob Herring DRVDD-supply = <&vcc_3v3d>; 300724ba675SRob Herring DVDD-supply = <&vcc_1v8d>; 301724ba675SRob Herring }; 302724ba675SRob Herring}; 303724ba675SRob Herring 304724ba675SRob Herring&mcasp0 { 305724ba675SRob Herring #sound-dai-cells = <0>; 306724ba675SRob Herring pinctrl-names = "default"; 307724ba675SRob Herring pinctrl-0 = <&mcasp0_pins>; 308724ba675SRob Herring status = "okay"; 309724ba675SRob Herring 310724ba675SRob Herring op-mode = <0>; /* DAVINCI_MCASP_IIS_MODE */ 311724ba675SRob Herring tdm-slots = <2>; 312724ba675SRob Herring serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 313724ba675SRob Herring 0 0 0 0 314724ba675SRob Herring 0 0 0 0 315724ba675SRob Herring 0 0 0 0 316724ba675SRob Herring 0 1 2 0 317724ba675SRob Herring >; 318724ba675SRob Herring tx-num-evt = <32>; 319724ba675SRob Herring rx-num-evt = <32>; 320724ba675SRob Herring}; 321724ba675SRob Herring 322724ba675SRob Herring&usb_phy { 323724ba675SRob Herring status = "okay"; 324724ba675SRob Herring}; 325724ba675SRob Herring 326724ba675SRob Herring&usb0 { 327724ba675SRob Herring status = "okay"; 328724ba675SRob Herring}; 329724ba675SRob Herring 330724ba675SRob Herring&usb1 { 331724ba675SRob Herring status = "okay"; 332724ba675SRob Herring}; 333724ba675SRob Herring 334724ba675SRob Herring&aemif { 335724ba675SRob Herring pinctrl-names = "default"; 336724ba675SRob Herring pinctrl-0 = <&nand_pins>; 337724ba675SRob Herring status = "okay"; 338724ba675SRob Herring cs3 { 339724ba675SRob Herring #address-cells = <2>; 340724ba675SRob Herring #size-cells = <1>; 341724ba675SRob Herring clock-ranges; 342724ba675SRob Herring ranges; 343724ba675SRob Herring 344724ba675SRob Herring ti,cs-chipselect = <3>; 345724ba675SRob Herring 346724ba675SRob Herring nand@2000000,0 { 347724ba675SRob Herring compatible = "ti,davinci-nand"; 348724ba675SRob Herring #address-cells = <1>; 349724ba675SRob Herring #size-cells = <1>; 350724ba675SRob Herring reg = <0 0x02000000 0x02000000 351724ba675SRob Herring 1 0x00000000 0x00008000>; 352724ba675SRob Herring 353724ba675SRob Herring ti,davinci-chipselect = <1>; 354724ba675SRob Herring ti,davinci-mask-ale = <0>; 355724ba675SRob Herring ti,davinci-mask-cle = <0>; 356724ba675SRob Herring ti,davinci-mask-chipsel = <0>; 357724ba675SRob Herring 358724ba675SRob Herring ti,davinci-nand-buswidth = <16>; 359724ba675SRob Herring ti,davinci-ecc-mode = "hw"; 360724ba675SRob Herring ti,davinci-ecc-bits = <4>; 361724ba675SRob Herring ti,davinci-nand-use-bbt; 362724ba675SRob Herring 363724ba675SRob Herring /* 364724ba675SRob Herring * The OMAP-L132/L138 Bootloader doc SPRAB41E reads: 365724ba675SRob Herring * "To boot from NAND Flash, the AIS should be written 366724ba675SRob Herring * to NAND block 1 (NAND block 0 is not used by default)". 367724ba675SRob Herring * The same doc mentions that for ROM "Silicon Revision 2.1", 368724ba675SRob Herring * "Updated NAND boot mode to offer boot from block 0 or block 1". 369724ba675SRob Herring * However the limitaion is left here by default for compatibility 370724ba675SRob Herring * with older silicon and because it needs new boot pin settings 371724ba675SRob Herring * not possible in stock LCDK. 372724ba675SRob Herring */ 373724ba675SRob Herring partitions { 374724ba675SRob Herring compatible = "fixed-partitions"; 375724ba675SRob Herring #address-cells = <1>; 376724ba675SRob Herring #size-cells = <1>; 377724ba675SRob Herring 378724ba675SRob Herring partition@0 { 379724ba675SRob Herring label = "u-boot env"; 380724ba675SRob Herring reg = <0 0x020000>; 381724ba675SRob Herring }; 382724ba675SRob Herring partition@20000 { 383724ba675SRob Herring /* The LCDK defaults to booting from this partition */ 384724ba675SRob Herring label = "u-boot"; 385724ba675SRob Herring reg = <0x020000 0x080000>; 386724ba675SRob Herring }; 387724ba675SRob Herring partition@a0000 { 388724ba675SRob Herring label = "free space"; 389724ba675SRob Herring reg = <0x0a0000 0>; 390724ba675SRob Herring }; 391724ba675SRob Herring }; 392724ba675SRob Herring }; 393724ba675SRob Herring }; 394724ba675SRob Herring}; 395724ba675SRob Herring 396724ba675SRob Herring&prictrl { 397724ba675SRob Herring status = "okay"; 398724ba675SRob Herring}; 399724ba675SRob Herring 400724ba675SRob Herring&memctrl { 401724ba675SRob Herring status = "okay"; 402724ba675SRob Herring}; 403724ba675SRob Herring 404724ba675SRob Herring&lcdc { 405724ba675SRob Herring status = "okay"; 406724ba675SRob Herring pinctrl-names = "default"; 407724ba675SRob Herring pinctrl-0 = <&lcd_pins>; 408724ba675SRob Herring 409724ba675SRob Herring port { 410724ba675SRob Herring lcdc_out_vga: endpoint { 411724ba675SRob Herring remote-endpoint = <&vga_bridge_in>; 412724ba675SRob Herring }; 413724ba675SRob Herring }; 414724ba675SRob Herring}; 415724ba675SRob Herring 416724ba675SRob Herring&vpif { 417724ba675SRob Herring pinctrl-names = "default"; 418724ba675SRob Herring pinctrl-0 = <&vpif_capture_pins>; 419724ba675SRob Herring status = "okay"; 420724ba675SRob Herring}; 421724ba675SRob Herring 422724ba675SRob Herring&dsp { 423724ba675SRob Herring memory-region = <&dsp_memory_region>; 424724ba675SRob Herring status = "okay"; 425724ba675SRob Herring}; 426