// SPDX-License-Identifier: GPL-2.0-only /* * Copyright (c) 2016 BayLibre, Inc. */ /dts-v1/; #include "da850.dtsi" #include <dt-bindings/gpio/gpio.h> #include <dt-bindings/input/input.h> / { model = "DA850/AM1808/OMAP-L138 LCDK"; compatible = "ti,da850-lcdk", "ti,da850"; aliases { serial2 = &serial2; ethernet0 = ð0; }; chosen { stdout-path = "serial2:115200n8"; }; memory@c0000000 { /* 128 MB DDR2 SDRAM @ 0xc0000000 */ reg = <0xc0000000 0x08000000>; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; dsp_memory_region: dsp-memory@c3000000 { compatible = "shared-dma-pool"; reg = <0xc3000000 0x1000000>; reusable; status = "okay"; }; }; vcc_5vd: fixedregulator-vcc_5vd { compatible = "regulator-fixed"; regulator-name = "vcc_5vd"; regulator-min-microvolt = <5000000>; regulator-max-microvolt = <5000000>; regulator-boot-on; }; vcc_3v3d: fixedregulator-vcc_3v3d { /* TPS650250 - VDCDC1 */ compatible = "regulator-fixed"; regulator-name = "vcc_3v3d"; regulator-min-microvolt = <3300000>; regulator-max-microvolt = <3300000>; vin-supply = <&vcc_5vd>; regulator-always-on; regulator-boot-on; }; vcc_1v8d: fixedregulator-vcc_1v8d { /* TPS650250 - VDCDC2 */ compatible = "regulator-fixed"; regulator-name = "vcc_1v8d"; regulator-min-microvolt = <1800000>; regulator-max-microvolt = <1800000>; vin-supply = <&vcc_5vd>; regulator-always-on; regulator-boot-on; }; sound { compatible = "simple-audio-card"; simple-audio-card,name = "DA850-OMAPL138 LCDK"; simple-audio-card,widgets = "Line", "Line In", "Line", "Line Out", "Microphone", "Mic Jack"; simple-audio-card,routing = "LINE1L", "Line In", "LINE1R", "Line In", "Line Out", "LLOUT", "Line Out", "RLOUT", "MIC3L", "Mic Jack", "MIC3R", "Mic Jack", "Mic Jack", "Mic Bias"; 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>; }; }; gpio-keys { compatible = "gpio-keys"; autorepeat; user1 { label = "GPIO Key USER1"; linux,code = <BTN_0>; gpios = <&gpio 36 GPIO_ACTIVE_LOW>; }; user2 { label = "GPIO Key USER2"; linux,code = <BTN_1>; gpios = <&gpio 37 GPIO_ACTIVE_LOW>; }; }; vga-bridge { compatible = "ti,ths8135"; #address-cells = <1>; #size-cells = <0>; ports { #address-cells = <1>; #size-cells = <0>; port@0 { reg = <0>; vga_bridge_in: endpoint { remote-endpoint = <&lcdc_out_vga>; }; }; port@1 { reg = <1>; vga_bridge_out: endpoint { remote-endpoint = <&vga_con_in>; }; }; }; }; vga { compatible = "vga-connector"; ddc-i2c-bus = <&i2c0>; port { vga_con_in: endpoint { remote-endpoint = <&vga_bridge_out>; }; }; }; cvdd: regulator0 { compatible = "regulator-fixed"; regulator-name = "cvdd"; regulator-min-microvolt = <1300000>; regulator-max-microvolt = <1300000>; regulator-always-on; regulator-boot-on; }; }; &ref_clk { clock-frequency = <24000000>; }; &cpu { cpu-supply = <&cvdd>; }; /* * LCDK has a fixed CVDD of 1.3V, so only operating points >= 300MHz are * valid. Unfortunately due to a problem with the DA8XX OHCI controller, we * can't enable more than one OPP by default, since the controller sometimes * becomes unresponsive after a transition. Fix the frequency at 456 MHz. */ &opp_100 { status = "disabled"; }; &opp_200 { status = "disabled"; }; &opp_300 { status = "disabled"; }; &opp_456 { status = "okay"; }; &pmx_core { status = "okay"; mcasp0_pins: mcasp0-pins { pinctrl-single,bits = < /* AHCLKX AFSX ACLKX */ 0x00 0x00101010 0x00f0f0f0 /* ARX13 ARX14 */ 0x04 0x00000110 0x00000ff0 >; }; nand_pins: nand-pins { pinctrl-single,bits = < /* EMA_WAIT[0], EMA_OE, EMA_WE, EMA_CS[3] */ 0x1c 0x10110010 0xf0ff00f0 /* * 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_D[8], EMA_D[9], EMA_D[10], * EMA_D[11], EMA_D[12], EMA_D[13], * EMA_D[14], EMA_D[15] */ 0x20 0x11111111 0xffffffff /* EMA_A[1], EMA_A[2] */ 0x30 0x01100000 0x0ff00000 >; }; }; &serial2 { pinctrl-names = "default"; pinctrl-0 = <&serial2_rxtx_pins>; status = "okay"; }; &wdt { status = "okay"; }; &rtc0 { status = "okay"; }; &gpio { status = "okay"; }; &sata_refclk { status = "okay"; clock-frequency = <100000000>; }; &sata { status = "okay"; }; &mdio { pinctrl-names = "default"; pinctrl-0 = <&mdio_pins>; bus_freq = <2200000>; status = "okay"; }; ð0 { pinctrl-names = "default"; pinctrl-0 = <&mii_pins>; status = "okay"; }; &mmc0 { max-frequency = <50000000>; bus-width = <4>; pinctrl-names = "default"; pinctrl-0 = <&mmc0_pins>; cd-gpios = <&gpio 64 GPIO_ACTIVE_LOW>; status = "okay"; }; &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins>; clock-frequency = <100000>; status = "okay"; tlv320aic3106: tlv320aic3106@18 { #sound-dai-cells = <0>; compatible = "ti,tlv320aic3106"; reg = <0x18>; adc-settle-ms = <40>; ai3x-micbias-vg = <1>; /* 2.0V */ status = "okay"; /* Regulators */ IOVDD-supply = <&vcc_3v3d>; AVDD-supply = <&vcc_3v3d>; DRVDD-supply = <&vcc_3v3d>; DVDD-supply = <&vcc_1v8d>; }; }; &mcasp0 { #sound-dai-cells = <0>; pinctrl-names = "default"; pinctrl-0 = <&mcasp0_pins>; status = "okay"; op-mode = <0>; /* DAVINCI_MCASP_IIS_MODE */ tdm-slots = <2>; serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */ 0 0 0 0 0 0 0 0 0 0 0 0 0 1 2 0 >; tx-num-evt = <32>; rx-num-evt = <32>; }; &usb_phy { status = "okay"; }; &usb0 { status = "okay"; }; &usb1 { status = "okay"; }; &aemif { pinctrl-names = "default"; pinctrl-0 = <&nand_pins>; status = "okay"; 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-nand-buswidth = <16>; ti,davinci-ecc-mode = "hw"; ti,davinci-ecc-bits = <4>; ti,davinci-nand-use-bbt; /* * The OMAP-L132/L138 Bootloader doc SPRAB41E reads: * "To boot from NAND Flash, the AIS should be written * to NAND block 1 (NAND block 0 is not used by default)". * The same doc mentions that for ROM "Silicon Revision 2.1", * "Updated NAND boot mode to offer boot from block 0 or block 1". * However the limitaion is left here by default for compatibility * with older silicon and because it needs new boot pin settings * not possible in stock LCDK. */ partitions { compatible = "fixed-partitions"; #address-cells = <1>; #size-cells = <1>; partition@0 { label = "u-boot env"; reg = <0 0x020000>; }; partition@20000 { /* The LCDK defaults to booting from this partition */ label = "u-boot"; reg = <0x020000 0x080000>; }; partition@a0000 { label = "free space"; reg = <0x0a0000 0>; }; }; }; }; }; &prictrl { status = "okay"; }; &memctrl { status = "okay"; }; &lcdc { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&lcd_pins>; port { lcdc_out_vga: endpoint { remote-endpoint = <&vga_bridge_in>; }; }; }; &vpif { pinctrl-names = "default"; pinctrl-0 = <&vpif_capture_pins>; status = "okay"; }; &dsp { memory-region = <&dsp_memory_region>; status = "okay"; };