| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449 |
- // SPDX-License-Identifier: GPL-2.0
- /dts-v1/;
- /include/ "skeleton.dtsi"
- #include "ark1668ed.dtsi"
- #include "ark1668ed-pinctrl.dtsi"
- / {
- i2c-gpio-0 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "i2c-gpio";
- gpios = <&gportc 13 0 /* SDA */
- &gportc 12 0 /* SCL */
- >;
- i2c-gpio,delay-us = <2>; /* clk freq = 500/delay KHz */
- i2c-gpio,scl-output-only;
- //i2c-gpio,sda-open-drain;
- //i2c-gpio,scl-open-drain;
- //status = "disabled";
- };
- i2c-gpio-1 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "i2c-gpio";
- gpios = <&gportd 20 0 /* SDA */
- &gportd 19 0 /* SCL */
- >;
- i2c-gpio,delay-us = <2>; /* clk freq = 500/delay KHz */
- i2c-gpio,scl-output-only;
- //i2c-gpio,sda-open-drain;
- //i2c-gpio,scl-open-drain;
- //status = "disabled";
- };
- i2c-gpio-2 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "i2c-gpio";
- gpios = <&gportf 31 0 /* SDA */
- &gportf 30 0 /* SCL */
- >;
- i2c-gpio,delay-us = <5>; /* clk freq = 100/delay KHz */
- i2c-gpio,scl-output-only;
- i2c-gpio,sda-open-drain;
- i2c-gpio,scl-open-drain;
- //pinctrl-names = "default";
- //pinctrl-0 = <&i2c_gpio_pins>;
- ark_codec: ark-codec@74 {
- compatible = "arkmicro,ark-audio-codec";
- reg = <0x74>;/* i2c address(7 bits) */
- #sound-dai-cells = <0>;
- };
- };
- i2c-gpio-3 {
- #address-cells = <1>;
- #size-cells = <0>;
- compatible = "i2c-gpio";
- gpios = <&gportd 27 0 /* SDA */
- &gportd 28 0 /* SCL */
- >;
- i2c-gpio,delay-us = <5>; /* clk freq = 500/delay KHz */
- i2c-gpio,scl-output-only;
- //i2c-gpio,sda-open-drain;
- //i2c-gpio,scl-open-drain;
- codec_ak7604: codec_ak7604@1c {
- status = "okay";
- compatible = "akm,ak7604";
- reg = <0x1c>;/* i2c address(7 bits) */
- pinctrl-names = "default";
- ak7604,pdn-gpio = <&gportd 29 GPIO_ACTIVE_HIGH>;
- #sound-dai-cells = <1>;
- };
- ak4436_codec: ak4436@13 {
- compatible = "asahi-kasei,ak4436";
- reg = <0x13>;/* i2c address(7 bits) */
- pinctrl-names = "default";
- #sound-dai-cells = <0>;
- //AVDD-supply = <&vdd_3v3_audio>;
- //DVDD-supply = <&vdd_1v8>;
- };
- es7210_codec: es7210@40 {
- compatible = "arkmicro,es7210";
- reg = <0x40>;/* i2c address(7 bits) */
- pinctrl-names = "default";
- #sound-dai-cells = <0>;
- };
- };
- //ark-audio
- sound0 {
- compatible = "simple-audio-card";
- simple-audio-card,name = "ark1668ed devb audio";
- simple-audio-card,format = "i2s";
- simple-audio-card,dai-link@0 { /* ARK - audio - codec */
- format = "i2s";
- bitclock-master = <&cpu_master>;
- frame-master = <&cpu_master>;
- cpu_master: cpu {
- sound-dai = <&i2s_audio>;//i2s_audio
- };
- codec_master: codec {
- sound-dai = <&ark_codec>;//External(ADC): ; Internal:ark_codec
- };
- };
- };
- //i2s0
- sound1 {
- compatible = "simple-audio-card";
- simple-audio-card,name = "SoundCard1";
- simple-audio-card,format = "i2s";
- // simple-audio-card,dai-link@0 { /* ARK - audio - codec */
- // format = "i2s";
- // bitclock-master = <&playback_cpu>;
- // frame-master = <&playback_cpu>;
- // playback_cpu: cpu {
- // sound-dai = <&i2s0_adac>;
- // };
- // playback_codec: codec {
- // sound-dai = <&ak4436_codec>;//External(ADC): ; Internal:ark_codec
- // };
- // };
- simple-audio-card,dai-link@0 { /* ARK - audio - codec */
- format = "i2s";
- bitclock-master = <&codec_master2>;
- frame-master = <&codec_master2>;
- cpu_master2: cpu {
- sound-dai = <&i2s0_adac>;
- };
- codec_master2: codec {
- sound-dai = <&codec_ak7604 0>;//External(ADC): ; Internal:ark_codec
- };
- };
- };
- //i2s1
- sound2 {
- compatible = "simple-audio-card";
- simple-audio-card,name = "SoundCard2";
- simple-audio-card,format = "i2s";
- simple-audio-card,dai-link@0 { /* ARK - audio - codec */
- format = "i2s";
- bitclock-master = <&capture_cpu>;
- frame-master = <&capture_cpu>;
- capture_cpu: cpu {
- sound-dai = <&i2s1_adac>;
- };
- capture_codec: codec {
- sound-dai = <&es7210_codec>;//External(ADC): ; Internal:ark_codec
- };
- };
- // simple-audio-card,dai-link@0 { /* ARK - audio - codec */
- // format = "i2s";
- // bitclock-master = <&codec_master2>;
- // frame-master = <&codec_master2>;
- // cpu_master2: cpu {
- // sound-dai = <&i2s1_adac>;
- // };
- // codec_master2: codec {
- // sound-dai = <&codec_ak7604 0>;//External(ADC): ; Internal:ark_codec
- // };
- // };
- };
- carback: carback@0 {
- compatible = "arkmicro,ark1668ed-carback";
- interrupt-parent = <&gportb>;
- interrupts = <6 IRQ_TYPE_EDGE_BOTH>;
- detect-gpios = <&gportb 6 GPIO_ACTIVE_HIGH>;
- debounce-detect = <0>;
- reg = <0x7ea00000 0x400000>;
- };
- vind0:vind@0 {
- compatible = "arkmicro,ark-vin-media", "simple-bus";
- #address-cells = <1>;
- #size-cells = <1>;
- ranges;
- reg = <0x50000000 0x1000>;
- multi_channel_input = <1>;
- select_channel = <0>;
- device_id = <0>;
- status = "okay";
- sensor0:sensor@0 {
- device_type = "sensor0";
- compatible = "arkmicro,ark-sensor";
- sensor0_mname = "rn6854m_mipi";
- sensor0_twi_cci_id = <1>; /*i2c slect*/
- sensor0_twi_addr = <0x58>; /*i2c addr*/
- sensor0_twi_cci_spi = <0>; /*init mode*/
- sensor0_reset = <&gportb 17 0>; /*reset gpio set*/
- device_id = <0>;
- status = "okay";
- };
- sensor1:sensor@1 {
- device_type = "sensor1";
- compatible = "arkmicro,ark-sensor";
- sensor1_mname = "ark7116_bt656";
- sensor1_twi_cci_id = <2>; /*i2c slect*/
- sensor1_twi_addr = <0xb2>; /*i2c addr*/
- sensor1_twi_cci_spi = <0>; /*init mode*/
- sensor1_reset = <&gportd 18 0>; /*reset gpio set*/
- device_id = <1>;
- status = "okay";
- };
- sensor2:sensor@2 {
- device_type = "sensor2";
- compatible = "arkmicro,ark-sensor";
- sensor2_mname = "tp2815_mipi";
- sensor2_twi_cci_id = <1>; /*i2c slect*/
- sensor2_twi_addr = <0x88>; /*i2c addr*/
- sensor2_twi_cci_spi = <0>; /*init mode*/
- sensor2_reset = <&gportd 18 0>; /*reset gpio set*/
- device_id = <2>;
- status = "okay";
- };
- csi0:csi@0 {
- device_type = "csi0";
- compatible = "arkmicro,ark-csi";
- interrupts = <GIC_SPI 43 IRQ_TYPE_LEVEL_HIGH>;
- reg = <0x51a00000 0x200>;
- device_id = <0>;
- csi0_use = <1>;
- status = "okay";
- };
- csi1:csi@1 {
- device_type = "csi1";
- compatible = "arkmicro,ark-csi";
- reg = <0x51a01000 0x200>;
- device_id = <1>;
- csi1_use = <0>;
- status = "okay";
- };
- csi2:csi@2 {
- device_type = "csi2";
- compatible = "arkmicro,ark-csi";
- reg = <0x51a02000 0x200>;
- device_id = <2>;
- csi2_use = <0>;
- status = "okay";
- };
- csi3:csi@3 {
- device_type = "csi3";
- compatible = "arkmicro,ark-csi";
- reg = <0x51a03000 0x200>;
- device_id = <3>;
- csi3_use = <0>;
- status = "okay";
- };
- vinc0:vinc@0 {
- device_type = "vinc0";
- compatible = "arkmicro,ark-vin-core";
- interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
- reg = <0x40800000 0x100
- 0x41100000 0x1000>;
- vinc0_csi_sel = <0>;
- #if 1
- vinc0_sensor_sel = <0>;
- vinc0_pad_sel = <0>;
- #else
- vinc0_sensor_sel = <1>;
- vinc0_pad_sel = <1>; /**use sensor1 ark7116 deinterlace**/
- #endif
- vinc0_use_deinterlace = <1>;
- vinc0_use_carback = <1>;
- device_id = <0>;
- status = "okay";
- };
- vinc1:vinc@1 {
- device_type = "vinc1";
- compatible = "arkmicro,ark-vin-core";
- interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
- reg = <0x40800400 0x100
- 0x41100000 0x1000>;
- vinc1_csi_sel = <1>;
- vinc1_sensor_sel = <0>;
- vinc1_pad_sel = <0>;
- vinc1_use_deinterlace = <0>;
- vinc1_use_carback = <1>;
- device_id = <1>;
- status = "okay";
- };
- vinc2:vinc@2 {
- device_type = "vinc2";
- compatible = "arkmicro,ark-vin-core";
- interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
- reg = <0x40800800 0x100
- 0x41100000 0x1000>;
- vinc2_csi_sel = <2>;
- vinc2_sensor_sel = <0>;
- vinc2_pad_sel = <0>;
- vinc2_use_deinterlace = <0>;
- vinc2_use_carback = <1>;
- device_id = <2>;
- status = "okay";
- };
- vinc3:vinc@3 {
- device_type = "vinc3";
- compatible = "arkmicro,ark-vin-core";
- interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>, <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
- reg = <0x40800c00 0x100
- 0x41100000 0x1000>;
- vinc3_csi_sel = <3>;
- vinc3_sensor_sel = <0>;
- vinc3_pad_sel = <0>;
- vinc3_use_deinterlace = <0>;
- vinc3_use_carback = <1>;
- device_id = <3>;
- status = "okay";
- };
- };
- };
- &lcdc {
- //display = <&display0>; //ttl
- display = <&display1>; //lvds
- //display = <&display2>; //mipi
- pinctrl-names = "default";
- pinctrl-0 = <&pinctrl_lcd_rgb888>;
- power-control-gpio = <&gporte 16 GPIO_ACTIVE_HIGH>;
- lcdcon-backlight;
- pwms = <&pwm0 4 50000 0>;
- pwm-names = "backlight";
- backlight-value = <20>;
- backlight-delay = <200>;
- display0: display@0 {
- interface-type = "TTL";
- bits-per-pixel = <32>;
- lcd-wiring-mode = "BGR";
- display-timings {
- native-mode = <&timing0>;
- timing0: timing0 {
- clock-frequency = <36000000>;
- hactive = <1024>;
- vactive = <600>;
- hback-porch = <64>;
- hfront-porch = <21>;
- vback-porch = <16>;
- vfront-porch = <24>;
- //hsync-len = <21>;
- hsync-len = <96>;
- //vsync-len = <80>;
- vsync-len = <9>;
- hsync-active = <1>;
- vsync-active = <1>;
- de-active = <0>;
- pixelclk-active = <0>;
- };
- };
- };
- display1: display@1 {
- interface-type = "DLVDS";
- lvds-con = <0xc7470008>;
- lvds-con2 = <0x00397ca4>;
- bits-per-pixel = <32>;
- fb-buffer-nums = <3>;
- lcd-wiring-mode = "RGB";
- display-timings {
- native-mode = <&timing0>;
- timing1: timing1 {
- clock-frequency = <120000000>;
- hactive = <1920>;
- vactive = <720>;
- hback-porch = <300>;
- hfront-porch = <240>;
- vback-porch = <80>;
- vfront-porch = <80>;
- hsync-len = <36>;
- vsync-len = <18>;
- hsync-active = <1>;
- vsync-active = <1>;
- de-active = <0>;
- pixelclk-active = <0>;
- };
- };
- };
- display2: display@2 {
- interface-type = "MIPI";
- bits-per-pixel = <32>;
- fb-buffer-nums = <3>;
- lcd-wiring-mode = "RGB";
- display-timings {
- native-mode = <&timing2>;
- timing2: timing2 {
- clock-frequency = <50000000>;
- hactive = <480>;
- vactive = <1280>;
- hback-porch = <16>;
- hfront-porch = <36>;
- vback-porch = <6>;
- vfront-porch = <6>;
- hsync-len = <26>;
- vsync-len = <16>;
- hsync-active = <1>;
- vsync-active = <1>;
- de-active = <0>;
- pixelclk-active = <0>;
- };
- };
- };
- };
- &i2c0 {
- gt911: touchscreen@5d {
- compatible = "goodix,gt911";
- reg = <0x5d>;
- interrupt-parent = <&gportb>;
- interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
- irq-gpios = <&gportb 18 GPIO_ACTIVE_HIGH>;
- reset-gpios = <&gportd 14 GPIO_ACTIVE_HIGH>;
- //touchscreen-inverted-x;
- };
- };
- &usb0 {
- status = "okay";
- reset-gpio = <&gporte 12 GPIO_ACTIVE_LOW>;
- };
- &usb1 {
- status = "okay";
- reset-gpio = <&gporte 13 GPIO_ACTIVE_LOW>;
- };
|