| /* |
| * Copyright (C) 2013 Ambarella,Inc. - http://www.ambarella.com/ |
| * Author: Cao Rongrong <rrcao@ambarella.com> |
| * |
| * 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. |
| */ |
| |
| /include/ "skeleton.dtsi" |
| |
| / { |
| compatible = "ambarella,a5s"; |
| interrupt-parent = <&intc>; |
| |
| aliases { |
| serial0 = &uart0; |
| serial1 = &uart1; |
| nand = &nand0; |
| emmc = &sdmmc0; |
| i2c0 = &i2c0; |
| i2c1 = &i2c1; |
| spi0 = &spi0; |
| spi1 = &spi1; |
| ethernet0 = &mac0; |
| }; |
| |
| /* the memory node will be overwritten in Amboot, |
| * here is just the default value. */ |
| memory { |
| device_type = "memory"; |
| reg = <0xc0200000 0x07e00000>; /* 126M */ |
| }; |
| |
| chosen { |
| linux,stdout-path = &uart0; |
| }; |
| |
| cpus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| cpu@0 { |
| device_type = "cpu"; |
| compatible = "arm,arm1136"; |
| reg = <0>; |
| }; |
| }; |
| |
| apb@70000000 { /* APB */ |
| compatible = "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x70000000 0x01000000>; |
| ranges; |
| |
| timer2: timer@7000b010 { |
| compatible = "ambarella,clock-source"; |
| reg = <0x7000b010 0x10 0x7000b030 0x4>; |
| interrupts = <13 0x1>; |
| ctrl-offset = <4>; /* bit offset in timer-ctrl reg */ |
| }; |
| |
| timer3: timer@7000b020 { |
| compatible = "ambarella,clock-event"; |
| reg = <0x7000b020 0x10 0x7000b030 0x4>; |
| interrupts = <14 0x1>; |
| ctrl-offset = <8>; /* bit offset in timer-ctrl reg */ |
| }; |
| |
| uart0: uart@70005000 { |
| compatible = "ambarella,uart"; |
| reg = <0x70005000 0x1000>; |
| interrupts = <9 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart0_pins>; |
| amb,less-reg; |
| status = "ok"; |
| }; |
| |
| uart1: uart@7001f000 { |
| compatible = "ambarella,uart"; |
| reg = <0x7001f000 0x1000>; |
| interrupts = <25 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart1_pins>; |
| amb,less-reg; |
| amb,msr-used; /* use Modem Status Register */ |
| status = "disabled"; |
| }; |
| |
| i2c0: i2c@70003000 { |
| compatible = "ambarella,i2c"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x70003000 0x1000>; |
| interrupts = <19 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c0_pins>; |
| clock-frequency = <100000>; |
| amb,i2c-class = <0x81>; |
| status = "disabled"; |
| }; |
| |
| i2c1: i2c@70007000 { |
| compatible = "ambarella,i2c"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x70007000 0x1000>; |
| interrupts = <36 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2c1_pins>; |
| clock-frequency = <100000>; |
| amb,i2c-class = <0x08>; |
| status = "disabled"; |
| }; |
| |
| i2cmux { |
| compatible = "i2c-mux-pinctrl"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| i2c-parent = <&i2c0>; |
| |
| pinctrl-names = "i2c2", "idle"; |
| pinctrl-0 = <&i2c2_pins>; |
| pinctrl-1 = <&i2c2_pins_idle>; |
| |
| i2c@0 { |
| reg = <0>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| }; |
| |
| spi0: spi@70002000 { |
| compatible = "ambarella,spi"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x70002000 0x1000>; |
| interrupts = <20 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&spi0_pins>; |
| amb,clk-freq = <13500000>; |
| amb,msb-first-only; |
| }; |
| |
| spi1: spi@7000f000 { |
| compatible = "ambarella,spi"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x7000f000 0x1000>; |
| interrupts = <41 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&spi1_pins>; |
| amb,clk-freq = <13500000>; |
| amb,msb-first-only; |
| }; |
| |
| spi_slave@7001e000 { |
| compatible = "ambarella,spi-slave"; |
| reg = <0x7001e000 0x1000>; |
| interrupts = <26 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&spi_slave_pins>; |
| amb,id = <0>; |
| }; |
| |
| adc@7000d000 { |
| compatible = "ambarella,adc"; |
| reg = <0x7000d000 0x1000>; |
| interrupts = <34 0x4>; |
| clock-frequency = <3000000>; |
| amb,polling-mode; |
| }; |
| |
| ir@70006000 { |
| compatible = "ambarella,ir"; |
| reg = <0x70006000 0x1000>; |
| interrupts = <22 0x4>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&ir_pins>; |
| }; |
| |
| wdt@7000c000 { |
| compatible = "ambarella,wdt"; |
| reg = <0x7000c000 0x1000>; |
| /* interrupts = <21 0x4>; */ |
| timeout-sec = <15>; |
| amb,non-bootstatus; |
| }; |
| |
| rtc@7000d000 { |
| compatible = "ambarella,rtc"; |
| reg = <0x7000d000 0x1000>; |
| amb,is-limited; |
| }; |
| |
| pwm: pwm@70004000 { |
| compatible = "ambarella,pwm"; |
| reg = <0x70004000 0x1000 0x70008000 0x10>; |
| #pwm-cells = <3>; |
| }; |
| |
| pinctrl: pinctrl@70009000 { |
| compatible = "ambarella,pinctrl", "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x70009000 0x1000>, |
| <0x7000a000 0x1000>, |
| <0x7000e000 0x1000>; |
| reg-names = "gpio0", "gpio1", "gpio2"; |
| #gpio-range-cells = <3>; |
| |
| gpio: gpio@0 { |
| compatible = "ambarella,gpio"; |
| /* gpio interrupts to vic */ |
| interrupts = <10 0x4 11 0x4 30 0x4>; |
| gpio-controller; |
| #gpio-cells = <2>; |
| gpio-ranges = <&pinctrl 0 0 96>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| }; |
| |
| uart0_pins: uart0@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x100e 0x100f>; |
| }; |
| |
| uart1_pins: uart1@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1032 0x1034>, |
| /* virtual pins, just for config */ |
| <0x1021 0x0022>; |
| }; |
| |
| uart1_flow_pins: uart1_flow@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1033 0x1035>, |
| /* virtual pins, just for config */ |
| <0x0021 0x1022>; |
| }; |
| |
| nand0_pins: nand0@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1027>; /* just WP is shared with GPIO */ |
| }; |
| |
| i2c0_pins: i2c0@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1000 0x1001>; |
| }; |
| |
| i2c1_pins: i2c1@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1056 0x1057>; |
| }; |
| |
| i2c2_pins: i2c2@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1024>; |
| }; |
| |
| i2c2_pins_idle: i2c2_idle@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x0024>; |
| }; |
| |
| ir_pins: ir0@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1023>; |
| }; |
| |
| i2s0_pins: i2s0@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x104d 0x104e 0x104f 0x1050 0x1051>, |
| /* virtual pins, just for config */ |
| <0x003f>; |
| }; |
| |
| pwm0_pins: pwm0@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x102d>; |
| }; |
| |
| pwm1_pins: pwm1@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x102e>; |
| }; |
| |
| pwm2_pins: pwm2@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1032>; |
| }; |
| |
| pwm3_pins: pwm3@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1033>; |
| }; |
| |
| pwm5_pins: pwm5@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1010>; |
| }; |
| |
| sdio_pins: sdio@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1045 0x1046 0x1047 |
| 0x1048 0x1049 0x104a>; |
| }; |
| |
| sdio_pins_idle: sdio_idle@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x0045 0x0046 0x0047 |
| 0x0048 0x0049 0x004a>; |
| }; |
| |
| spi0_pins: spi0@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1002 0x1003 0x1004>; |
| }; |
| |
| spi1_pins: spi1@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1058 0x1059 0x105A>; |
| }; |
| |
| spi_slave_pins: spi_slave@0 { |
| reg = <0>; |
| amb,pinmux-ids = <0x1032 0x1033 0x1034 0x1035>, |
| /* virtual pins, just for |
| configuration purpose.*/ |
| <0x0021 0x1022>; |
| }; |
| }; |
| }; |
| |
| ahb@60000000 { /* AHB */ |
| compatible = "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x60000000 0x01000000>; |
| ranges; |
| |
| intc: interrupt-controller@60003000 { |
| compatible = "ambarella,vic"; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| reg = <0x60003000 0x1000>, |
| <0x60010000 0x1000>; |
| }; |
| |
| dma: dma@60005000 { |
| compatible = "ambarella,dma"; |
| reg = <0x60005000 0x1000>; |
| interrupts = <15 0x4>; |
| #dma-cells = <2>; |
| dma-channels = <4>; |
| dma-requests = <4>; |
| dma-trans-type = <0 1 1 0>; /* 0-memcpy ,1-slave*/ |
| amb,copy-align = <3>; |
| }; |
| |
| nand0: nand@60001000 { |
| compatible = "ambarella,nand"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x60001000 0x1000>, /* fio reg address */ |
| <0x60012000 0x1000>, /* fdma reg address */ |
| <0x60000000 0x4>; /* fifo base */ |
| interrupts = <16 0x4>, /* fio_cmd_irq */ |
| <17 0x4>, /* fio_dma_irq */ |
| <33 0x4>; /* fdma_irq */ |
| pinctrl-names = "default"; |
| pinctrl-0 = <&nand0_pins>; |
| amb,enable-wp; |
| amb,no-bch; |
| amb,use-2x-pll; |
| nand-on-flash-bbt; |
| }; |
| |
| i2s0: i2s@6000a000 { |
| compatible = "ambarella,i2s"; |
| reg = <0x6000a000 0x1000>; |
| pinctrl-names = "default"; |
| pinctrl-0 = <&i2s0_pins>; |
| amb,i2s-channels = <2>; |
| amb,default-mclk = <12288000>; |
| dmas = <&dma 1 1>, |
| <&dma 0 1>; |
| dma-names = "tx", "rx"; |
| }; |
| |
| udc@60006000 { |
| compatible = "ambarella,udc"; |
| reg = <0x60006000 0x2000 0x70170088 0x4>; |
| interrupts = <4 0x4>; |
| amb,usbphy = <&usbphy>; |
| }; |
| |
| sdmmc0: sdmmc0@60002000 { |
| compatible = "ambarella,sdmmc"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x60002000 0x1000>, |
| <0x60001000 0x80>; /* fio reg address */ |
| interrupts = <18 0x4>; |
| amb,clk-name = "gclk_sd"; |
| amb,wait-tmo = <10000>; /* in millisecond */ |
| amb,switch_vol_tmo = <20>; |
| amb,max-blk-size = <524288>; /* valid value: 4K<<n */ |
| status = "disabled"; |
| |
| slot@0 { |
| reg = <0>; |
| global-id = <0>; |
| max-frequency = <24000000>; |
| bus-width = <4>; |
| cap-sdio-irq; |
| no-1-8-v; |
| }; |
| |
| slot@1 { |
| reg = <1>; |
| global-id = <1>; |
| max-frequency = <24000000>; |
| bus-width = <4>; |
| cap-sdio-irq; |
| no-1-8-v; |
| |
| amb,force-gpio; |
| pinctrl-names = "work", "idle"; |
| pinctrl-0 = <&sdio_pins>; |
| pinctrl-1 = <&sdio_pins_idle>; |
| }; |
| }; |
| |
| mac0: ethernet@6000e000 { |
| compatible = "ambarella,eth"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <0x6000e000 0x2000>; |
| interrupts = <27 0x4>; |
| amb,tx-ring-size = <32>; |
| amb,rx-ring-size = <64>; |
| }; |
| |
| crypto@60014000 { |
| compatible = "ambarella,crypto"; |
| reg = <0x60014000 0x1000>; |
| interrupts = <45 0x1>, <46 0x1>; |
| interrupt-names = "aes-irq", "des-irq"; |
| amb,binary-mode; |
| }; |
| }; |
| |
| rct@70170000 { |
| compatible = "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| reg = <0x70170000 0x1000>; |
| ranges; |
| |
| usbphy: usbphy@70170050 { |
| compatible = "ambarella,usbphy"; |
| reg = <0x70170050 0x4>; |
| }; |
| }; |
| |
| iav { |
| compatible = "ambarella,iav"; |
| }; |
| |
| bogus_bus { |
| compatible = "simple-bus"; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| dummycodec: codec@0 { |
| compatible = "ambarella,dummycodec"; |
| }; |
| }; |
| }; |