/* * Copyright (C) 2013 Ambarella,Inc. - http://www.ambarella.com/ * Author: Cao Rongrong * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ /dts-v1/; /include/ "ambarella-cv25.dtsi" #include "cv25_hazelnut_private.dtsi" #include "config.h" #include "bsp.h" / { model = "Ambarella CV25 Hazelnut Board"; compatible = "ambarella,cv25_hazelnut", "ambarella,cv25"; chosen { #if defined(CONFIG_AMBARELLA_ROOTFS_CPIO) bootargs = "console=ttyS0"; #else bootargs = "console=ttyS0 ubi.mtd=lnx root=ubi0:rootfs rw rootfstype=ubifs init=/linuxrc"; #endif }; n_apb@e4000000 { i2c0: i2c@e4008000 { status = "ok"; tas2563: codec@4c { compatible = "ti,tas2563"; #sound-dai-cells = <0>; reg = <0x4c>; ti,asi-format = <1>; /* 0, i2S; 1, DSP; */ ti,reset-gpio = <&pca9539 16 0>; ti,irq-gpio = <&pca9539 15 0>; ti,left-slot = <0>; /* */ ti,right-slot = <1>; /* */ ti,imon-slot-no = <0>; /* */ ti,vmon-slot-no = <2>; /* */ ti,i2s-bits = <16>; /* support 16, 24, 32 */ ti,bypass-tmax = <0>; /* 0, not bypass; 1, bypass */ status = "ok"; }; }; i2c1: i2c@e4009000 { status = "ok"; pinctrl-0 = <&i2c1_pins_b>; }; i2c2: i2c@e400a000 { status = "ok"; pinctrl-0 = <&i2c2_pins_b>; it66121@4c { compatible = "it66121"; reg = <0x4c>; rst_gpios = <&pca9539 3 0x0>; }; }; i2c3: i2c@e400b000 { status = "ok"; pca9539: pca9539@74 { compatible = "nxp,pca9539"; reg = <0x74>; gpio-controller; interrupt-parent = <&gpio>; interrupt-controller; #gpio-cells = <2>; interrupts = <9 0x0>; }; isl12022: rtc@6f { compatible = "isil,isl12022"; reg = <0x6f>; }; ambvin1@01 { compatible = "ambarella,ambvin"; reg = <0x01>; /* fake address, will be overwritten in runtime */ }; }; }; n_ahb@e0000000 { #if defined(CONFIG_BOOT_MEDIA_STACK) nand0: nand@e0002000 { status = "disabled"; }; #endif sdmmc0: sdmmc0@e0004000 { pwr-gpios = <&gpio 81 0x1>; v18-gpios = <&gpio 105 0x1>; #if defined(CONFIG_BOOT_MEDIA_EMMC) || defined(CONFIG_BOOT_MEDIA_STACK) amb,fixed-cd = <1>; #endif }; sdmmc1: sdmmc1@e0005000 { status = "disabled"; }; sdmmc2: sdmmc2@e0016000 { status = "disabled"; }; mac0: ethernet@e000e000 { pinctrl-0 = <&rgmii_pins &enet_2nd_ref_clk_pins_a>; amb,ahb-12mhz-div = <5>; amb,tx-clk-invert; phy@0 { reg = <0>; rst-gpios = <&pca9539 11 0>; }; }; spi0: spi@e0011000 { #if defined(CONFIG_BRIDGE_SERDES_B5) || defined(CONFIG_BRIDGE_SERDES_B6) status = "ok"; #else status = "disabled"; #endif #if defined(BUILD_GYRO) cs-gpios = <&gpio 7 0>; ambvin0@0 { compatible = "ambarella,ambvin"; reg = <0>; spi-max-frequency = <1000000>; spi-cpha; spi-cpol; }; #else cs-gpios = <&gpio 7 0>, <&gpio 8 0>; ambvin0@0 { compatible = "ambarella,ambvin"; reg = <0>; spi-max-frequency = <1000000>; spi-cpha; spi-cpol; }; ambvin1@0 { compatible = "ambarella,ambvin"; reg = <1>; spi-max-frequency = <1000000>; spi-cpha; spi-cpol; }; #endif }; spi1: spi@e0012000 { status = "ok"; cs-gpios = <&gpio 78 0>; gyro@0 { compatible = "ambarella,gyro"; reg = <0>; spi-max-frequency = <20000000>; spi-cpha; spi-cpol; irq-gpio = <&gpio 8 0>; }; }; i2s0: i2s@e001d000 { amb,i2s-channels = <4>; }; hdmi@e000b000 { amb,i2c-adapter = <1>; }; uart2: uart@e0018000 { status = "ok"; /delete-property/ amb,msr-used; /delete-property/ amb,txdma-used; /delete-property/ amb,rxdma-used; }; }; s_ahb@e8000000 { /* Secure AHB, but configurable */ rtc@e8001000 { status = "disabled"; }; }; rct@ed080000 { usbphy: usbphy@ed080050 { /* high will trigger the ocp interrupt */ amb,ocp-polarity = <0>; pinctrl-names = "default"; pinctrl-0 = <&usb_host0_pins_a>; hub-gpios = <&pca9539 10 0>; }; }; bogus_bus { pwm_bl@0 { compatible = "pwm-backlight"; reg = <0>; pwms = <&pwm0 0 40000 0>; pinctrl-names = "default"; pinctrl-0 = <&pwm0_pins_c>; brightness-levels = <0 4 8 16 32 64 128 255>; default-brightness-level = <7>; status = "disabled"; }; dummycodec: codec@0 { compatible = "ambarella,dummycodec"; reg = <0>; #sound-dai-cells = <0>; }; }; iav { /* node for vin controller */ vinc0 { vinrst-gpios = <&gpio 84 0>; /* vinpwr-gpios = <>; */ }; vinc1 { vinrst-gpios = <&gpio 19 0>; /* vinpwr-gpios = <>; */ }; /* node for vin bridge */ vinbrg0 { compatible = "ambarella,vinbrg"; #if defined(CONFIG_BRIDGE_SERDES_B5) || defined(CONFIG_BRIDGE_SERDES_B6) brgrst-gpios = <&pca9539 1 0>; #else brgpwr-gpios = <&gpio 6 1>; brgrst-gpios = <&gpio 4 0>, <&pca9539 1 0>; #endif bus-addr = <0x00000>; }; vinbrg1 { compatible = "ambarella,vinbrg"; #if defined(CONFIG_BRIDGE_SERDES_B5) || defined(CONFIG_BRIDGE_SERDES_B6) brgrst-gpios = <&pca9539 0 0>; #else brgpwr-gpios = <&gpio 6 1>; brgrst-gpios = <&gpio 5 0>, <&pca9539 0 0>; #endif bus-addr = <0x00001>; }; /* node for lcd md092ml04 */ lcd_md092ml04 { compatible = "ambarella,lcd_md092ml04"; pwr-gpios = <&pca9539 7 1>; backlight-gpios = <&gpio 42 1>; }; voutc0 { pinctrl-names; pinctrl-0; }; }; sound { compatible = "ambarella,audio-board"; simple-audio-card,name = "tas2563 @ AMBEVK"; simple-audio-card,mclk-fs = <256>; simple-audio-card,widgets = "Speaker", "Speaker", "Headphone", "HP Jack", "Line", "Line In", "Line", "Line Out", "Microphone", "Mic Internal", "Microphone", "Mic External"; simple-audio-card,routing = "LIN2", "Mic Bias", "RIN2", "Mic Bias", "Mic Bias", "Mic Internal", "LIN3", "Line In", "RIN3", "Line In", "Line Out", "SPKLO", "HP Jack", "HPL", "HP Jack", "HPR", "Speaker", "SPKLO"; simple-audio-card,dai-link@0 { format = "dsp_a"; cpu { sound-dai = <&i2s0>; }; codec { sound-dai = <&tas2563>; }; }; simple-audio-card,dai-link@1 { format = "dsp_a"; cpu { sound-dai = <&i2s0>; }; codec { sound-dai = <&dummycodec>; }; }; }; };