oleavr-rgl-a500-mini-linux-.../arch/arm/boot/dts/sun3iw1p1.dtsi
Ole André Vadla Ravnås 169c65d57e Initial commit
2022-05-07 01:01:45 +02:00

683 lines
17 KiB
Text

/*
* Allwinner Technology CO., Ltd. sun3iw1p1 platform
*
* modify base on juno.dts & sun3iw1
*/
/* kernel used */
/memreserve/ 0x81000000 0x00010000; /* sun3iw1p1.dtb range : [0x81000000~0x81010000], size = 64K */
/memreserve/ 0x81010000 0x01900000; /* ion memory range : [0x81010000~0x82310000], size = 19M */
/memreserve/ 0x83010000 0x00080000; /* reserve for bootlogo */
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/gpio/gpio.h>
#include "sun3iw1p1-clk.dtsi"
#include "sun3iw1p1-pinctrl.dtsi"
/ {
model = "sun3iw1p1";
compatible = "arm,sun3iw1p1", "arm,sun3iw1p1";
interrupt-parent = <&intc>;
#address-cells = <2>;
#size-cells = <2>;
aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
twi0 = &twi0;
twi1 = &twi1;
twi2 = &twi2;
spi0 = &spi0;
spi1 = &spi1;
mmc0 = &sdc0;
mmc1 = &sdc1;
global_timer0 = &soc_timer0;
csi_res0 = &csi_res0; /*csi driver*/
vfe0 = &csi0; /*sersor driver*/
disp = &disp;
lcd0 = &lcd0;
tvd = &tvd;
pwm = &pwm;
pwm0 = &pwm0;
};
chosen {
bootargs = "earlyprintk=sunxi-uart,0x01c25000 loglevel=8 initcall_debug=1 console=ttyS0 init=/init";
linux,initrd-start = <0x0 0x0>;
linux,initrd-end = <0x0 0x0>;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,arm926ejs";
reg = <0x0>;
};
};
ion {
compatible = "allwinner,sunxi-ion";
/*types is list here:
ION_HEAP_TYPE_SYSTEM = 0,
ION_HEAP_TYPE_SYSTEM_CONTIG = 1,
ION_HEAP_TYPE_CARVEOUT = 2,
ION_HEAP_TYPE_CHUNK = 3,
ION_HEAP_TYPE_DMA = 4
*/
system{
type = <0>;
name = "system";
};
system_contig{
type = <1>;
name = "system_contig";
};
};
memory@80000000 {
device_type = "memory";
reg = <0x00000000 0x80000000 0x00000000 0x4000000>;
};
intc: interrupt-controller@01c20400 {
compatible = "allwinner,sun3i-intc";
#interrupt-cells = <1>;
#address-cells = <0>;
device_type = "intc";
interrupt-controller;
reg = <0x0 0x01c20400 0 0x1000>;
};
wdt: watchdog@01c20ca0 {
compatible = "allwinner,sun3i-wdt";
reg = <0x0 0x01c20ca0 0 0x18>;
};
soc: soc {
compatible = "simple-bus";
#address-cells = <2>;
#size-cells = <2>;
device_type = "soc";
ranges;
dma0:dma-controller@01c02000 {
compatible = "allwinner,sun3i-dma";
reg = <0x0 0x01c02000 0x0 0x1000>;
interrupts = <18>;
clocks = <&clk_dma>;
/*#dma-cells = <1>;*/
#dma-cells = <2>;
};
soc_timer0: timer@1c20c00 {
compatible = "allwinner,sunxi-timer";
device_type = "timer";
reg = <0x0 0x01c20c00 0x0 0x90>;
interrupts = <13>;
clock-frequency = <24000000>;
timer-prescale = <16>;
};
ve: ve@01c0e000 {
compatible = "allwinner,sunxi-cedar-ve";
reg = <0x0 0x01c0e000 0x0 0x1000>,
<0x0 0x01c00000 0x0 0x3000>,
<0x0 0x01c20000 0x0 0x800>;
interrupts = <34>;
clocks = <&clk_pll_ve>,<&clk_ve>;
};
uart0: uart@01c25000 {
compatible = "allwinner,sun3i-uart";
device_type = "uart0";
reg = <0x0 0x01c25000 0x0 0x400>;
interrupts = <1>;
clocks = <&clk_uart0>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart0_pins_a>;
pinctrl-1 = <&uart0_pins_b>;
uart0_port = <0>;
uart0_type = <2>;
status = "disabled";
};
uart1: uart@01c25400 {
compatible = "allwinner,sun3i-uart";
device_type = "uart1";
reg = <0x0 0x01c25400 0x0 0x400>;
interrupts = <2>;
clocks = <&clk_uart1>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart1_pins_a>;
pinctrl-1 = <&uart1_pins_b>;
uart1_port = <1>;
uart1_type = <4>;
/*status = "disabled";*/
status = "okay";
};
uart2: uart@01c25800 {
compatible = "allwinner,sun3i-uart";
device_type = "uart2";
reg = <0x0 0x01c25800 0x0 0x400>;
interrupts = <3>;
clocks = <&clk_uart2>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&uart2_pins_a>;
pinctrl-1 = <&uart2_pins_b>;
uart2_port = <2>;
uart2_type = <4>;
status = "disabled";
};
twi0: twi@0x01c27000{
#address-cells = <1>;
#size-cells = <0>;
compatible = "allwinner,sun3i-twi";
device_type = "twi0";
reg = <0x0 0x01c27000 0x0 0x400>;
interrupts = <7>;
clocks = <&clk_twi0>;
clock-frequency = <400000>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&twi0_pins_a>;
pinctrl-1 = <&twi0_pins_b>;
status = "disabled";
};
twi1: twi@0x01c27400{
#address-cells = <1>;
#size-cells = <0>;
compatible = "allwinner,sun3i-twi";
device_type = "twi1";
reg = <0x0 0x01c27400 0x0 0x400>;
interrupts = <8>;
clocks = <&clk_twi1>;
clock-frequency = <200000>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&twi1_pins_a>;
pinctrl-1 = <&twi1_pins_b>;
status = "disabled";
};
twi2: twi@0x01c27800{
#address-cells = <1>;
#size-cells = <0>;
compatible = "allwinner,sun3i-twi";
device_type = "twi2";
reg = <0x0 0x01c27800 0x0 0x400>;
interrupts = <9>;
clocks = <&clk_twi2>;
clock-frequency = <200000>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&twi2_pins_a>;
pinctrl-1 = <&twi2_pins_b>;
status = "disabled";
};
spi0: spi@01c05000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "allwinner,sun8i-spi";
device_type = "spi0";
reg = <0x0 0x01c05000 0x0 0x1000>;
interrupts = <10>;
clocks = <&clk_ahb1>, <&clk_spi0>;
clock-frequency = <100000000>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi0_pins_a &spi0_pins_b>;
pinctrl-1 = <&spi0_pins_c &spi0_pins_d>;
spi0_cs_number = <1>;
spi0_cs_bitmap = <1>;
sd-spi-sel = <&pio PA 1 1 1 0 0>;
sd-spi-act = <1>; /* 1: active high 0: active low */
dmas = <&dma0 0 4>,
<&dma0 0 4>;
dma-names = "rx","tx";
status = "disabled";
};
spi1: spi@01c06000 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "allwinner,sun8i-spi";
device_type = "spi1";
reg = <0x0 0x01c06000 0x0 0x1000>;
interrupts = <11>;
clocks = <&clk_pll_periph>, <&clk_spi1>;
clock-frequency = <100000000>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
pinctrl-1 = <&spi1_pins_c>;
spi1_cs_number = <1>;
spi1_cs_bitmap = <1>;
status = "disabled";
};
sdc0: sdmmc@01c0f000 {
compatible = "allwinner,sun3iw1p1-sdmmc0";
device_type = "sdc0";
reg = <0x0 0x01c0f000 0x0 0x1000>; /* only sdmmc0 */
interrupts = <23>;
clocks = <&clk_hosc>,<&clk_pll_periph>,<&clk_sdmmc0_mod>,<&clk_sdmmc0_bus>,<&clk_sdmmc0_rst>;
clock-names = "osc24m","pll_periph","mmc","ahb","rst";
pinctrl-names = "default","sleep";
pinctrl-0 = <&sdc0_pins_a>;
pinctrl-1 = <&sdc0_pins_b>;
max-frequency = <50000000>;
bus-width = <4>;
/*broken-cd;*/
/*non-removable;*/
/*cd-inverted*/
/*cd-gpios = <&pio PA 1 0 1 2 0>;*/
/* vmmc-supply = <&reg_3p3v>;*/
/* vqmc-supply = <&reg_3p3v>;*/
/* vdmc-supply = <&reg_3p3v>;*/
/*vmmc = "vcc-card";*/
/*vqmc = "";*/
/*vdmc = "";*/
/*sd-uhs-sdr50;*/
/*sd-uhs-ddr50;*/
cap-sdio-irq;
keep-power-in-suspend;
ignore-pm-notify;
/*sunxi-power-save-mode;*/
/*sunxi-dly-400k = <1 0 0 0>; */
/*sunxi-dly-26M = <1 0 0 0>;*/
/*sunxi-dly-52M = <1 0 0 0>;*/
/*sunxi-dly-52M-ddr4 = <1 0 0 0>;*/
/*sunxi-dly-52M-ddr8 = <1 0 0 0>;*/
/*sunxi-dly-104M = <1 0 0 0>;*/
/*sunxi-dly-208M = <1 0 0 0>;*/
/*sunxi-dly-104M-ddr = <1 0 0 0>;*/
/*sunxi-dly-208M-ddr = <1 0 0 0>;*/
/*status = "okay";*/
status = "disabled";
};
sdc1: sdmmc@01c10000 {
compatible = "allwinner,sun3iw1p1-sdmmc1";
device_type = "sdc1";
reg = <0x0 0x1C10000 0x0 0x1000>;
interrupts = <24>;/* */
clocks = <&clk_hosc>,<&clk_pll_periph>,<&clk_sdmmc1_mod>,<&clk_sdmmc1_bus>,<&clk_sdmmc1_rst>;
clock-names = "osc24m","pll_periph","mmc","ahb","rst";
/*pinctrl-names = "default","sleep";*/
/*pinctrl-0 = <&sdc1_pins_a>;*/
/*pinctrl-1 = <&sdc1_pins_b>;*/
max-frequency = <50000000>;
bus-width = <1>;
broken-cd;
/*cd-inverted*/
cd-gpios = <&pio PC 3 0 1 1 0>;
/* vmmc-supply = <&reg_3p3v>;*/
/* vqmc-supply = <&reg_3p3v>;*/
/* vdmc-supply = <&reg_3p3v>;*/
/*vmmc = "vcc-card";*/
/*vqmc = "";*/
/*vdmc = "";*/
/*sd-uhs-sdr50;*/
/*sd-uhs-ddr50;*/
/*sd-uhs-sdr104;*/
cap-sdio-irq;
keep-power-in-suspend;
ignore-pm-notify;
/*sunxi-power-save-mode;*/
/*sunxi-dly-400k = <1 0 0 0 0>; */
/*sunxi-dly-26M = <1 0 0 0 0>;*/
/*sunxi-dly-52M = <1 0 0 0 0>;*/
sunxi-dly-52M-ddr4 = <1 0 0 0 2>;
/*sunxi-dly-52M-ddr8 = <1 0 0 0 0>;*/
sunxi-dly-104M = <1 0 0 0 1>;
/*sunxi-dly-208M = <1 1 0 0 0>;*/
sunxi-dly-208M = <1 0 0 0 1>;
/*sunxi-dly-104M-ddr = <1 0 0 0 0>;*/
/*sunxi-dly-208M-ddr = <1 0 0 0 0>;*/
/*status = "okay";*/
status = "disabled";
};
disp: disp@0x01e00000 {
compatible = "allwinner,sun3i-disp";
reg = <0x0 0x01e00000 0x0 0x00020000>,/*defe*/
<0x0 0x01e60000 0x0 0x00010000>,/*debe*/
<0x0 0x01e70000 0x0 0x00010000>,/*de interlace*/
<0x0 0x01c0c000 0x0 0x1000>;/*lcd*/
interrupts = <30>, /*defe*/
<31>, /*debe*/
<33>, /*de interlace*/
<29>; /*lcd*/
clocks = <&clk_defe>,<&clk_debe>,<&clk_deinterlace>,<&clk_tcon>;
status = "okay";
};
tvd: tvd0@01c0b000 {
compatible = "allwinner,sunxi-tvd";
reg = <0x0 0x01c0b000 0x0 0x1000>;
interrupts = <27>; /*TVD*/
clocks = <&clk_tvd>;
tvd_used = <1>;
tvd_if = <0>;
status = "okay";
};
lcd0: lcd0@01c0c000 {
compatible = "allwinner,sunxi-lcd0";
pinctrl-names = "active","sleep";
status = "okay";
};
pwm: pwm@01c21000 {
compatible = "allwinner,sunxi-pwm";
reg = <0x0 0x01c21000 0x0 0x08>;
pwm-number = <1>;
pwm-base = <0x0>;
pwms = <&pwm0>, <&pwm1>;
};
pwm0: pwm0@01c21000 {
compatible = "allwinner,sunxi-pwm0";
pinctrl-names = "active", "sleep";
reg_base = <0x01c21000>;
reg_busy_offset = <0x00>;
reg_busy_shift = <28>;
reg_enable_offset = <0x00>;
reg_enable_shift = <4>;
reg_clk_gating_offset = <0x00>;
reg_clk_gating_shift = <6>;
reg_bypass_offset = <0x00>;
reg_bypass_shift = <9>;
reg_pulse_start_offset = <0x00>;
reg_pulse_start_shift = <8>;
reg_mode_offset = <0x00>;
reg_mode_shift = <7>;
reg_polarity_offset = <0x00>;
reg_polarity_shift = <5>;
reg_period_offset = <0x04>;
reg_period_shift = <16>;
reg_period_width = <16>;
reg_active_offset = <0x04>;
reg_active_shift = <0>;
reg_active_width = <16>;
reg_prescal_offset = <0x00>;
reg_prescal_shift = <0>;
reg_prescal_width = <4>;
};
pwm1: pwm1@01c21000 {
compatible = "allwinner,sunxi-pwm1";
pinctrl-names = "active", "sleep";
reg_base = <0x01c21000>;
reg_busy_offset = <0x00>;
reg_busy_shift = <29>;
reg_enable_offset = <0x00>;
reg_enable_shift = <19>;
reg_clk_gating_offset = <0x00>;
reg_clk_gating_shift = <21>;
reg_bypass_offset = <0x00>;
reg_bypass_shift = <24>;
reg_pulse_start_offset = <0x00>;
reg_pulse_start_shift = <23>;
reg_mode_offset = <0x00>;
reg_mode_shift = <22>;
reg_polarity_offset = <0x00>;
reg_polarity_shift = <20>;
reg_period_offset = <0x08>;
reg_period_shift = <16>;
reg_period_width = <16>;
reg_active_offset = <0x08>;
reg_active_shift = <0>;
reg_active_width = <16>;
reg_prescal_offset = <0x00>;
reg_prescal_shift = <15>;
reg_prescal_width = <4>;
};
di:deinterlace@0x01e70000{
compatible = "allwinner,sunxi-deinterlace";
reg = <0x0 0x01e70000 0x0 0x080>;
interrupts = <33>;
clocks = <&clk_deinterlace> ,<&clk_pll_video>;
status = "okay";
};
csi_res0:csi_res@0x01cb0000 {
compatible = "allwinner,sunxi-csi";
reg = <0x0 0x01cb0000 0x0 0x1000>;/*0x01cb0000--0x01cb1000*/
clocks = <&clk_csi_m>,<&clk_pll_video>,<&clk_hosc>;
clocks-index = <0 1 2>;
status = "okay";
};
csi0:vfe@0 {
device_type= "csi0";
compatible = "allwinner,sunxi-vfe";
interrupts = <32>;/*SUNXI_IRQ_CSI0 */
pinctrl-names = "default","sleep";
pinctrl-0 = <&csi0_pins_a>;
pinctrl-1 = <&csi0_pins_b>;
csi_sel = <0>;
csi0_sensor_list = <0>;
csi0_mck = <&pio PE 11 2 1 3 0>; /*PE11 .mul_sel = 2, .pull = 0, .drv_level = 1, .data = 0*/
status = "okay";
csi0_dev1:dev@1{
csi0_dev0_pos = "rear";
csi0_dev0_isp_used = <0>;
csi0_dev0_fmt = <0>;
csi0_dev0_stby_mode = <0>;
csi0_dev0_vflip = <0>;
csi0_dev0_hflip = <0>;
csi0_dev0_iovdd = <0>;
csi0_dev0_iovdd_vol = <0>;
csi0_dev0_avdd = <0>;
csi0_dev0_avdd_vol = <0>;
csi0_dev0_dvdd = <0>;
csi0_dev0_dvdd_vol = <0>;
csi0_dev0_afvdd = <0>;
csi0_dev0_afvdd_vol = <0>;
csi0_dev0_power_en = <>;
csi0_dev0_reset = <&pio PA 0 1 1 3 1>; /*PA0 .mul_sel = 1, .pull = 0, .drv_level = 1, .data = 1*/
csi0_dev0_pwdn = <&pio PD 9 1 1 3 1>;
csi0_dev0_flash_en = <>;
csi0_dev0_flash_mode = <>;
csi0_dev0_af_pwdn = <>;
csi0_dev0_act_used = <0>;
csi0_dev0_act_name = <0>;
csi0_dev0_act_slave = <0>;
status = "okay";
};
};
usbc0:usbc0@0 {
device_type = "usbc0";
compatible = "allwinner,sunxi-otg-manager";
usb_port_type = <2>; /* 0: for device, 1: for host */
usb_detect_type = <1>;
usb_detect_mode = <0>;
usb_id_gpio = <&pio PD 9 0 1 1 1>;
usb_det_vbus_gpio = <&pio PD 10 0 1 1 1>;
usb_drv_vbus_gpio = <&pio PD 11 1 1 1 1>;
usb_host_init_state = <0>;
usb_regulator_io = "nocare";
usb_wakeup_suspend = <0>;
usb_luns = <1>;
usb_serial_unique = <0>;
usb_serial_number = "20080411";
rndis_wceis = <1>;
status = "okay";
};
udc:udc-controller@0x01c13000 {
compatible = "allwinner,sunxi-udc";
reg = <0x0 0x01c13000 0x0 0x1000>, /*udc base*/
<0x0 0x01c00000 0x0 0x100>; /*sram base*/
interrupts = <26>;
clocks = <&clk_usbphy0>, <&clk_usbotg>;
status = "okay";
};
otghci0:otghci0-controller@0x01c13000 {
compatible = "allwinner,sunxi-hcd0";
reg = <0x0 0x01c13000 0x0 0x1000>, /*udc base*/
<0x0 0x01c00000 0x0 0x100>; /*sram base*/
interrupts = <26>;
clocks = <&clk_usbphy0>, <&clk_usbotg>;
hci_ctrl_no = <0>;
status = "okay";
};
daudio0:daudio@0x01c22000 {
compatible = "allwinner,sunxi-daudio";
reg = <0x0 0x01c22000 0x0 0x3C>;
clocks = <&clk_pll_audio>,<&clk_audio>;
pinctrl-names = "default","sleep";
pinctrl-0 = <&daudio0_pins_a>;
pinctrl-1 = <&daudio0_pins_b>;
word_select_size = <16>; /* 16 20 24 */
pcm_sync_period = <32>; /* 32 64 128 256 */
pcm_lsb_first = <0>;
slot_width_select = <0x20>;
pcm_sync_type = <0>; /*pcm format: 0-short frame,1-long frame*/
pcm_start_slot = <0>;
tx_data_mode = <0x0>;
rx_data_mode = <0x0>;
tdm_config = <0x01>; /* 1: i2s 0: pcm */
tdm_num = <0x0>;
dmas = <&dma0 0 14>,
<&dma0 0 14>;
dma-names = "rx-tx","rx-tx";
status = "okay";
};
spdif:spdif-controller@0x01c21400{
compatible = "allwinner,sunxi-spdif";
reg = <0x0 0x01c21400 0x0 0x38>;
clocks = <&clk_pll_audio>,<&clk_spdif>;
pinctrl-names = "default","sleep";
pinctrl-0 = <&spdif_pins_a>;
pinctrl-1 = <&spdif_pins_b>;
dmas = <&dma0 0 1>,
<&dma0 0 1>;
status = "disabled";
};
codec:codec@0x01c23c00 {
compatible = "allwinner,sunxi-internal-codec";
reg = <0x0 0x01c23c00 0x0 0x9c>;/*digital baseadress*/
clocks = <&clk_pll_audio>, <&clk_codec>;
/*gpio-spk=<&pio 6 7 0>;*/
/*gpio-spk = <&pio PB 1 1 1 1 1>;*/
headphonevol = <0x3b>;
spkervol = <0x1b>;
maingain = <0x4>;
hp_dirused = <0x0>;
pa_sleep_time = <0x15e>;
status = "okay";
};
cpudai:cpudai0-controller@0x01c23c00 {
compatible = "allwinner,sunxi-internal-cpudai";
reg = <0x0 0x01c23c00 0x0 0x9c>;/*digital baseadress*/
clocks = <&clk_codec>;
dmas = <&dma0 0 12>,
<&dma0 0 12>;
dma-names = "rx-tx","rx-tx";
status = "okay";
};
sndcodec:sound@0 {
compatible = "allwinner,sunxi-codec-machine";
sunxi,cpudai-controller = <&cpudai>;
sunxi,audio-codec = <&codec>;
/*headphone-dect = <&pio PD 1 0 6 1 1>;*/
hp_detect_case = <0x00>;
status = "okay";
};
sndspdif:sound@1{
compatible = "allwinner,sunxi-spdif-machine";
sunxi,spdif-controller = <&spdif>;
status = "okay";
};
wifi {
device_type = "wifi_conf";
power_en = <>;
reset_pin = <&pio PD 16 0 1 1 1>;
irq_pin = <&pio PD 13 0 6 1 1>;
status = "okay";
};
Vdevice: vdevice@0{
compatible = "allwinner,sun3i-vdevice";
device_type = "Vdevice";
pinctrl-names = "default";
pinctrl-0 = <&vdevice_pins_a>;
test-gpios = <&pio PD 1 1 2 2 1>;
status = "disabled";
};
keyboard0:keyboard{
compatible = "allwinner,keyboard_2000mv";
reg = <0x0 0x01c23400 0x0 0x400>;
interrupts = <22>;
status = "okay";
pwr-key = <&pio PD 14 0 6 1 0>;
usb-sts = <&pio PD 10 0 6 1 0>;
key_cnt = <6>;
key0 = <248 115>;
key1 = <403 114>;
key2 = <589 139>;
key3 = <775 28>;
key4 = <961 102>;
key5 = <1209 103>;
};
battery0:battery{
compatible = "allwinner, LRADC_battery";
reg = <0x0 0x01c23400 0x0 0x400>;
interrupts = <22>;
/*charging-io = <&pio PA 1 0 6 1 0>;*/
status = "disabled";
};
wirelesskey0:wirelesskey@0 {
compatible = "allwinner,wireless-key";
gpio-key = <&pio PE 3 0 6 1 1>;
debounce = <0>; /* in msecs */
status = "disabled";
};
tp_key0:tp_key@0x01c24800{
compatible = "allwinner,tp_key";
reg = <0x0 0x01c24800 0x0 0xf0>;
interrupts = <20>;
key_cnt = <3>;
key1 = <408 2>;
key2 = <688 3>;
key3 = <2319 4>;
status = "disabled";
};
};
};