1011 lines
18 KiB
Plaintext
1011 lines
18 KiB
Plaintext
/*
|
|
* Copyright (C) 2020-2022 ArtInChip Technology Co., Ltd.
|
|
*
|
|
* This file is dual-licensed: you can use it either under the terms
|
|
* of the GPL or the X11 license, at your option. Note that this dual
|
|
* licensing only applies to this file, and not this project as a
|
|
* whole.
|
|
*
|
|
* a) This file is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License as
|
|
* published by the Free Software Foundation; either version 2 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* This file is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* Or, alternatively,
|
|
*
|
|
* b) Permission is hereby granted, free of charge, to any person
|
|
* obtaining a copy of this software and associated documentation
|
|
* files (the "Software"), to deal in the Software without
|
|
* restriction, including without limitation the rights to use,
|
|
* copy, modify, merge, publish, distribute, sublicense, and/or
|
|
* sell copies of the Software, and to permit persons to whom the
|
|
* Software is furnished to do so, subject to the following
|
|
* conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be
|
|
* included in all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
* OTHER DEALINGS IN THE SOFTWARE.
|
|
*/
|
|
|
|
/dts-v1/;
|
|
#include "d211.dtsi"
|
|
#include "d211-ddr2-512Mb.dtsi"
|
|
#include "d211-ddr.dtsi"
|
|
#include "d211-pinctrl.dtsi"
|
|
#include <dt-bindings/display/artinchip,aic-disp.h>
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/pwm/pwm.h>
|
|
|
|
/ {
|
|
model = "Artinchip PER1";
|
|
compatible = "artinchip,d211";
|
|
package = "QFN128";
|
|
|
|
aliases {
|
|
gpio0 = &gpio_a;
|
|
gpio1 = &gpio_b;
|
|
gpio2 = &gpio_c;
|
|
gpio3 = &gpio_d;
|
|
gpio4 = &gpio_e;
|
|
gpio5 = &gpio_f;
|
|
pinctrl = &pinctrl;
|
|
serial0 = &uart0;
|
|
serial1 = &uart1;
|
|
serial2 = &uart2;
|
|
serial3 = &uart3;
|
|
serial4 = &uart4;
|
|
serial5 = &uart5;
|
|
serial6 = &uart6;
|
|
serial7 = &uart7;
|
|
i2c0 = &i2c0;
|
|
i2c1 = &i2c1;
|
|
i2c2 = &i2c2;
|
|
i2c3 = &i2c3;
|
|
can0 = &can0;
|
|
can1 = &can1;
|
|
spi0 = &spi0;
|
|
spi1 = &spi1;
|
|
gmac0 = &gmac0;
|
|
gmac1 = &gmac1;
|
|
rtc = &rtc;
|
|
wdt0 = &wdt0;
|
|
fb0 = &fb0;
|
|
de0 = &de0;
|
|
lvds0 = &lvds0;
|
|
rgb0 = &rgb0;
|
|
dsi0 = &dsi0;
|
|
dvp0 = &dvp0;
|
|
cir = ○
|
|
adcim = &adcim;
|
|
gpai = &gpai;
|
|
rtp = &rtp;
|
|
tsen = &tsen;
|
|
pwm = &pwm;
|
|
sdmc0 = &sdmc0;
|
|
sdmc1 = &sdmc1;
|
|
sdmc2 = &sdmc2;
|
|
dma = &dma;
|
|
crypto = &crypto;
|
|
sid = &sid;
|
|
mtop = &mtop;
|
|
codec = &codec;
|
|
wri = &wri;
|
|
aicudc = &aicudc;
|
|
usbh0 = &usbh0;
|
|
usbh1 = &usbh1;
|
|
ohci0 = &ohci0;
|
|
ohci1 = &ohci1;
|
|
i2s0 = &i2s0;
|
|
i2s1 = &i2s1;
|
|
ge = ≥
|
|
};
|
|
|
|
chosen {
|
|
stdout-path = "serial0:115200n8";
|
|
bootargs = "rdinit=/init earlycon=sbi loglevel=7";
|
|
reset-after-fw-burn;
|
|
};
|
|
config {
|
|
u-boot,mmc-env-partition = "env";
|
|
};
|
|
|
|
cpus {
|
|
u-boot,dm-pre-reloc;
|
|
cpu0: cpu@0 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
|
|
clocks {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
soc {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
timer {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
memory@40000000 {
|
|
device_type = "memory";
|
|
reg = <0x0 0x40000000 0x0 0x4000000>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
/* Reserved 1M memory for aic ramdump
|
|
When enable CONFIG_AIC_RAMDUMP in linux kernel, also must enable below node.
|
|
*/
|
|
reserved-memory {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
ranges;
|
|
|
|
#if 0
|
|
aic_ramdump_buf {
|
|
compatible = "artinchip,aic-ramdump";
|
|
no-map;
|
|
reg = <0x43f00000 0x100000>;
|
|
};
|
|
#endif
|
|
};
|
|
#if 0
|
|
syspower {
|
|
compatible = "artinchip,aic-power";
|
|
power-gpios = <&gpio_e 13 GPIO_ACTIVE_HIGH>;
|
|
};
|
|
#endif
|
|
panel_lvds {
|
|
compatible = "artinchip,aic-general-lvds-panel";
|
|
enable-gpios = <&gpio_e 19 GPIO_ACTIVE_HIGH>;
|
|
data-mapping = "vesa-24";
|
|
data-channel = "single-link1";
|
|
/*backlight = <&backlight>;*/
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
|
|
port {
|
|
panel_lvds_in: endpoint {
|
|
remote-endpoint = <&lvds0_out>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
|
|
display-timings {
|
|
native-mode = <&timing1>;
|
|
u-boot,dm-pre-reloc;
|
|
timing1: 1024x600 {
|
|
clock-frequency = <52000000>;
|
|
hactive = <1024>;
|
|
vactive = <600>;
|
|
hback-porch = <160>;
|
|
hfront-porch = <160>;
|
|
hsync-len = <20>;
|
|
vback-porch = <20>;
|
|
vfront-porch = <12>;
|
|
vsync-len = <3>;
|
|
de-active = <1>;
|
|
pixelclk-active = <1>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
panel_rgb {
|
|
compatible = "artinchip,aic-general-rgb-panel";
|
|
status = "disabled";
|
|
u-boot,dm-pre-reloc;
|
|
|
|
enable-gpios = <&gpio_e 19 GPIO_ACTIVE_HIGH>;
|
|
rgb-mode = <PRGB>;
|
|
interface-format = <PRGB_16BIT_LD>;
|
|
clock-phase = <DEGREE_0>;
|
|
data-order = <RGB>;
|
|
data-mirror;
|
|
|
|
port {
|
|
u-boot,dm-pre-reloc;
|
|
panel_rgb_in: endpoint {
|
|
u-boot,dm-pre-reloc;
|
|
remote-endpoint = <&rgb0_out>;
|
|
};
|
|
};
|
|
|
|
display-timings {
|
|
native-mode = <&timing0>;
|
|
u-boot,dm-pre-reloc;
|
|
timing0: 1024x600 {
|
|
clock-frequency = <52000000>;
|
|
hactive = <1024>;
|
|
vactive = <600>;
|
|
hback-porch = <160>;
|
|
hfront-porch = <160>;
|
|
hsync-len = <20>;
|
|
vback-porch = <12>;
|
|
vfront-porch = <20>;
|
|
vsync-len = <3>;
|
|
de-active = <1>;
|
|
pixelclk-active = <1>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
panel_dsi {
|
|
compatible = "artinchip,aic-dsi-panel-simple";
|
|
u-boot,dm-pre-reloc;
|
|
status = "disabled";
|
|
|
|
dcdc-en-gpios = <&gpio_d 3 GPIO_ACTIVE_HIGH>;
|
|
reset-gpios = <&gpio_d 1 GPIO_ACTIVE_HIGH>;
|
|
enable-gpios = <&gpio_d 0 GPIO_ACTIVE_HIGH>;
|
|
|
|
port {
|
|
u-boot,dm-pre-reloc;
|
|
panel_dsi_in: endpoint {
|
|
u-boot,dm-pre-reloc;
|
|
remote-endpoint = <&dsi0_out>;
|
|
};
|
|
};
|
|
};
|
|
|
|
backlight: backlight {
|
|
compatible = "pwm-backlight";
|
|
/* pwm node name; pwm device No.; period_ns; pwm_polarity */
|
|
pwms = <&pwm 3 1000000 0>;
|
|
brightness-levels = <0 10 20 30 40 50 60 70 80 90 100>;
|
|
default-brightness-level = <6>;
|
|
u-boot,dm-pre-reloc;
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
&cmu {
|
|
pll-int0 = <600000000>;
|
|
pll-int1 = <1200000000>;
|
|
pll-frac1 = <491520000>;
|
|
pll-frac2 = <840000000>;
|
|
axi0 = <240000000>;
|
|
ahb0 = <240000000>;
|
|
apb0 = <100000000>;
|
|
apb1 = <24000000>;
|
|
clk-out0 = <25000000>;
|
|
clk-out1 = <25000000>;
|
|
clk-out2 = <25000000>;
|
|
clk-out3 = <25000000>;
|
|
// clk-out0-enable;
|
|
// clk-out1-enable;
|
|
/* Enable clock out2 */
|
|
clk-out2-enable;
|
|
// clk-out3-enable;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&rst {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&osc24m {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&rc1m {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&osc32k {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
&rtc {
|
|
aic,alarm-io-output;
|
|
status = "okay";
|
|
};
|
|
|
|
&wdt0 {
|
|
timeout-sec = <16>;
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&uart0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart0_pins_a>;
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&uart1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart1_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&uart2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart2_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&uart3 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart3_pins_c>;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart4 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart4_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&uart5 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart5_pins_a>;
|
|
linux,rs485-enabled-at-boot-time;
|
|
aic,rs485-compact-io-mode;
|
|
status = "okay";
|
|
};
|
|
|
|
&uart6 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart6_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&uart7 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&uart7_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&dvp0 {
|
|
status = "disabled";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&dvp_pins>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
dvp0_in: endpoint {
|
|
// remote-endpoint = <&camera_out>;
|
|
/* bus-type = <6>; /* V4L2_FWNODE_BUS_TYPE_BT656 */
|
|
bus-width = <8>;
|
|
hsync-active = <1>;
|
|
vsync-active = <1>;
|
|
field-even-active = <1>;
|
|
pclk-sample = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&i2c0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c0_pins_b>;
|
|
status = "disabled";
|
|
rtc@32 {
|
|
compatible = "epson,rx8010";
|
|
reg = <0x32>;
|
|
};
|
|
};
|
|
|
|
&i2c1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c1_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&i2c2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c2_pins_a>;
|
|
status = "disabled";
|
|
|
|
#if 0
|
|
ov5640: camera@3C {
|
|
compatible = "ovti,ov5640";
|
|
reg = <0x3C>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&clk_out1_pins>;
|
|
clocks = <&cmu CLK_OUT1>;
|
|
clock-names = "xclk";
|
|
clock-rate = <24000000>;
|
|
reset-gpios = <&gpio_e 14 GPIO_ACTIVE_LOW>;
|
|
powerdown-gpios = <&gpio_e 15 GPIO_ACTIVE_HIGH>;
|
|
|
|
port {
|
|
camera_out: endpoint {
|
|
remote-endpoint = <&dvp0_in>;
|
|
/* V4L2_FWNODE_BUS_TYPE_BT656
|
|
bus-type = <6>; */
|
|
bus-width = <8>;
|
|
data-shift = <2>;
|
|
hsync-active = <0>;
|
|
vsync-active = <1>;
|
|
pclk-sample = <1>;
|
|
};
|
|
};
|
|
};
|
|
#endif
|
|
#if 0
|
|
ov2659: camera@30 {
|
|
compatible = "ovti,ov2659";
|
|
reg = <0x30>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&clk_out1_pins>;
|
|
clocks = <&cmu CLK_OUT1>;
|
|
clock-names = "xvclk";
|
|
clock-rate = <24000000>;
|
|
reset-gpios = <&gpio_e 14 GPIO_ACTIVE_LOW>;
|
|
powerdown-gpios = <&gpio_e 15 GPIO_ACTIVE_HIGH>;
|
|
|
|
port {
|
|
camera_out: endpoint {
|
|
remote-endpoint = <&dvp0_in>;
|
|
link-frequencies = /bits/ 64 <40000000>;
|
|
};
|
|
};
|
|
};
|
|
#endif
|
|
#if 0
|
|
ov7670: camera@21 {
|
|
compatible = "ovti,ov7670";
|
|
reg = <0x21>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&clk_out1_pins>;
|
|
clocks = <&cmu CLK_OUT1>;
|
|
clock-names = "xclk";
|
|
clock-rate = <24000000>;
|
|
reset-gpios = <&gpio_e 14 GPIO_ACTIVE_LOW>;
|
|
powerdown-gpios = <&gpio_e 15 GPIO_ACTIVE_HIGH>;
|
|
|
|
port {
|
|
camera_out: endpoint {
|
|
remote-endpoint = <&dvp0_in>;
|
|
};
|
|
};
|
|
};
|
|
#endif
|
|
};
|
|
|
|
&i2c3 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&i2c3_pins_a>;
|
|
status = "disabled";
|
|
|
|
gt9xx@5d {
|
|
status = "disabled";
|
|
compatible = "goodix,gt9xx";
|
|
reg = <0x5d>;
|
|
reset-gpios = <&gpio_a 8 GPIO_ACTIVE_LOW>;
|
|
irq-gpios = <&gpio_a 9 GPIO_ACTIVE_HIGH>;
|
|
irq-flags = <2>;
|
|
|
|
touchscreen-max-id = <11>;
|
|
touchscreen-size-x = <1024>;
|
|
touchscreen-size-y = <600>;
|
|
touchscreen-max-w = <512>;
|
|
touchscreen-max-p = <512>;
|
|
|
|
goodix,int-sync = <1>;
|
|
};
|
|
};
|
|
|
|
&dma {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&spi0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi0_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&spi1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi1_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&spi2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi2_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&spi3 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spi3_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&sdmc0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&sdmc0_pins>;
|
|
bus-width = <4>;
|
|
cap-mmc-highspeed;
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&sdmc1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&sdmc1_pins>;
|
|
bus-width = <4>;
|
|
cap-sd-highspeed;
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&sdmc2 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&sdmc2_pins>;
|
|
status = "disabled";
|
|
};
|
|
|
|
/* case 1: USB0 = OTG Enable */
|
|
#if 0
|
|
&otg {
|
|
id-gpios = <&gpio_a 2 GPIO_ACTIVE_HIGH>;
|
|
// vbus-en-gpios = <&gpio_a 3 GPIO_ACTIVE_HIGH>;
|
|
status = "okay";
|
|
};
|
|
|
|
&aicudc {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb0_pins_a>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usbh0 {
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci0 {
|
|
status = "okay";
|
|
};
|
|
|
|
/* case 2: USB0 = OTG Disable */
|
|
#else
|
|
|
|
&otg {
|
|
status = "disabled";
|
|
};
|
|
|
|
/* case 2.1: USB0 = Device */
|
|
#if 1
|
|
&aicudc {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb0_pins_a>;
|
|
status = "okay";
|
|
};
|
|
|
|
&usbh0 {
|
|
status = "disabled";
|
|
};
|
|
&ohci0 {
|
|
status = "disabled";
|
|
};
|
|
|
|
/* case 2.2: USB0 = Host */
|
|
#else
|
|
&aicudc {
|
|
aic,only-uboot-use;
|
|
status = "okay";
|
|
};
|
|
|
|
&usbh0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb0_pins_a>;
|
|
artinchip,sw_usb_phy0;
|
|
// vbus-en-gpios = <&gpio_a 3 GPIO_ACTIVE_HIGH>;
|
|
status = "okay";
|
|
};
|
|
&ohci0 {
|
|
status = "okay";
|
|
};
|
|
#endif
|
|
#endif
|
|
|
|
&usbh1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&usb1_pins_a>;
|
|
status = "okay";
|
|
};
|
|
|
|
&ohci1 {
|
|
status = "okay";
|
|
};
|
|
|
|
&pinctrl {
|
|
u-boot,dm-pre-reloc;
|
|
gmac0_local_pins: gmac0-2 {
|
|
pins {
|
|
pinmux = <AIC_PINMUX('E', 0, 6)>,
|
|
<AIC_PINMUX('E', 1, 6)>,
|
|
<AIC_PINMUX('E', 2, 6)>,
|
|
<AIC_PINMUX('E', 3, 6)>,
|
|
<AIC_PINMUX('E', 4, 6)>,
|
|
<AIC_PINMUX('E', 5, 6)>,
|
|
<AIC_PINMUX('E', 7, 6)>,
|
|
<AIC_PINMUX('E', 8, 6)>,
|
|
<AIC_PINMUX('E', 9, 6)>;
|
|
bias-disable;
|
|
drive-strength = <3>;
|
|
};
|
|
};
|
|
|
|
pwm3_pins_d: pwm3-3 {
|
|
pins {
|
|
pinmux = <AIC_PINMUX('E', 19, 5)>;
|
|
bias-disable;
|
|
drive-strength = <3>;
|
|
};
|
|
};
|
|
|
|
spk_pins_d: spk-3 {
|
|
pins {
|
|
pinmux = <AIC_PINMUX('E', 11, 4)>;
|
|
bias-disable;
|
|
drive-strength = <3>;
|
|
};
|
|
};
|
|
gpio_a: bank-0 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
gpio_b: bank-1 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
gpio_c: bank-2 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
gpio_d: bank-3 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
gpio_e: bank-4 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
gpio_f: bank-5 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
lvds1_pins: lvds1-0 {
|
|
u-boot,dm-pre-reloc;
|
|
pins {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
uart0_pins_a: uart0-0 {
|
|
u-boot,dm-pre-reloc;
|
|
pins1 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
pins2 {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
sdmc0_pins: sdmc0-0 {
|
|
u-boot,dm-pre-reloc;
|
|
pins {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
sdmc1_pins: sdmc1-0 {
|
|
u-boot,dm-pre-reloc;
|
|
pins {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
&gmac0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gmac0_local_pins>, <&clk_out2_pins_b>;
|
|
phy-handle = <&gmac0_phy>;
|
|
phy-reset-gpios = <&gpio_e 6 GPIO_ACTIVE_HIGH>;
|
|
phy-addr = <1>;
|
|
phy-mode = "rmii";
|
|
max-speed = <100>;
|
|
aic,use_extclk;
|
|
|
|
|
|
status = "okay";
|
|
|
|
gmac0_mdio: mdio {
|
|
compatible = "aicmac-mdio";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
gmac0_phy: ethernet-phy@1 {
|
|
reg = <1>;
|
|
};
|
|
};
|
|
};
|
|
|
|
&gmac1 {
|
|
status = "disabled";
|
|
};
|
|
|
|
&codec {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spk_pins_d>, <&dmic_pins_b>;
|
|
pa-gpios = <&gpio_a 7 GPIO_ACTIVE_LOW>;
|
|
status = "okay";
|
|
};
|
|
|
|
/* The data flow:
|
|
* fb ---> de ----> lvds ----> panel
|
|
* |-> rgb ->|
|
|
* '-> dsi ->'
|
|
*/
|
|
|
|
&disp {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
&fb0 {
|
|
artinchip,uboot-logo-on=<1>;
|
|
height-virtual = <1200>;
|
|
u-boot,dm-pre-reloc;
|
|
port {
|
|
u-boot,dm-pre-reloc;
|
|
fb0_out: endpoint {
|
|
remote-endpoint = <&de0_in>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
&de0 {
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
|
|
port@0 {
|
|
u-boot,dm-pre-reloc;
|
|
reg = <0>;
|
|
de0_in: endpoint {
|
|
remote-endpoint = <&fb0_out>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
u-boot,dm-pre-reloc;
|
|
reg = <1>;
|
|
de0_out: endpoint {
|
|
remote-endpoint = <&lvds0_in>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
&ve {
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
&rgb0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&lcd_pins>;
|
|
status = "disabled";
|
|
u-boot,dm-pre-reloc;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
u-boot,dm-pre-reloc;
|
|
rgb0_in: endpoint {
|
|
remote-endpoint = <&rgb0_in>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
u-boot,dm-pre-reloc;
|
|
rgb0_out: endpoint {
|
|
remote-endpoint = <&panel_rgb_in>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
|
|
&lvds0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&lvds1_pins>;
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
u-boot,dm-pre-reloc;
|
|
lvds0_in: endpoint {
|
|
remote-endpoint = <&de0_out>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
u-boot,dm-pre-reloc;
|
|
lvds0_out: endpoint {
|
|
remote-endpoint = <&panel_lvds_in>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
&dsi0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&dsi_pins>;
|
|
status = "disabled";
|
|
u-boot,dm-pre-reloc;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
u-boot,dm-pre-reloc;
|
|
dsi0_in: endpoint {
|
|
remote-endpoint = <&dsi0_in>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
u-boot,dm-pre-reloc;
|
|
dsi0_out: endpoint {
|
|
remote-endpoint = <&panel_dsi_in>;
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
};
|
|
|
|
&cir {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&cir_pins_a>;
|
|
rx-level = <1>;
|
|
linux,rc-map-name = "rc-empty";
|
|
status = "disabled";
|
|
};
|
|
|
|
&adcim {
|
|
status = "okay";
|
|
};
|
|
|
|
&gpai {
|
|
status = "disabled";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&gpai7_pins>;
|
|
|
|
gpai0 {
|
|
aic,sample-period-ms = <18>;
|
|
aic,high-level-thd = <1830>;
|
|
aic,low-level-thd = <1800>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpai1 {
|
|
status = "disabled";
|
|
};
|
|
|
|
gpai2 {
|
|
status = "disabled";
|
|
};
|
|
|
|
gpai3 {
|
|
status = "disabled";
|
|
};
|
|
|
|
gpai4 {
|
|
status = "disabled";
|
|
};
|
|
|
|
gpai5 {
|
|
status = "disabled";
|
|
};
|
|
|
|
gpai6 {
|
|
status = "disabled";
|
|
};
|
|
|
|
gpai7 {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
&rtp {
|
|
aic,max-pressure = <800>;
|
|
aic,x-plate = <235>;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&rtp_pins>;
|
|
status = "okay";
|
|
};
|
|
|
|
&tsen {
|
|
status = "okay";
|
|
|
|
tsen0 {
|
|
status = "okay";
|
|
};
|
|
|
|
tsen1 {
|
|
status = "okay";
|
|
};
|
|
};
|
|
|
|
&pwm {
|
|
status = "disabled";
|
|
u-boot,dm-pre-reloc;
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&pwm3_pins_d>;
|
|
/* mode: up-count, down-count, up-down-count
|
|
action: none, low, high, inverse */
|
|
pwm0 {
|
|
aic,mode = "up-count";
|
|
aic,tb-clk-rate = <24000000>;
|
|
aic,rise-edge-delay = <10>;
|
|
aic,fall-edge-delay = <10>;
|
|
/* CBD, CBU, CAD, CAU, PRD, ZRO */
|
|
aic,action0 = "none", "none", "none", "low", "none", "high";
|
|
aic,action1 = "none", "none", "none", "high", "none", "low";
|
|
status = "disabled";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
pwm1 {
|
|
aic,mode = "down-count";
|
|
aic,tb-clk-rate = <24000000>;
|
|
aic,rise-edge-delay = <10>;
|
|
aic,fall-edge-delay = <10>;
|
|
/* CBD, CBU, CAD, CAU, PRD, ZRO */
|
|
aic,action0 = "none", "none", "none", "low", "none", "high";
|
|
aic,action1 = "none", "none", "none", "high", "none", "low";
|
|
status = "disabled";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
pwm2 {
|
|
aic,mode = "up-count";
|
|
aic,tb-clk-rate = <24000000>;
|
|
/* CBD, CBU, CAD, CAU, PRD, ZRO */
|
|
aic,action0 = "none", "none", "none", "high", "low", "none";
|
|
aic,action1 = "none", "none", "none", "low", "high", "none";
|
|
aic,default-level = <0>;
|
|
aic,rise-edge-delay = <10>;
|
|
aic,fall-edge-delay = <10>;
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
|
|
pwm3 {
|
|
aic,mode = "up-count";
|
|
aic,tb-clk-rate = <24000000>;
|
|
/* CBD, CBU, CAD, CAU, PRD, ZRO */
|
|
aic,action0 = "none", "none", "none", "low", "none", "high";
|
|
aic,action1 = "none", "none", "none", "high", "none", "low";
|
|
aic,rise-edge-delay = <10>;
|
|
aic,fall-edge-delay = <10>;
|
|
status = "okay";
|
|
u-boot,dm-pre-reloc;
|
|
};
|
|
};
|
|
|
|
&can0 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&can0_pins_a>;
|
|
status = "disabled";
|
|
};
|
|
|
|
&can1 {
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&can1_pins_a>;
|
|
status = "disabled";
|
|
};
|