blob: 45365e9bfcac1b261af658420347d64229f0d2d2 [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2019 Amlogic, Inc. All rights reserved.
*/
/dts-v1/;
#include "mesont5w.dtsi"
#include "mesont5w_pxp-panel.dtsi"
/ {
model = "Amlogic T5W PXP";
amlogic-dt-id = "t5w_pxp";
compatible = "amlogic, t5w";
interrupt-parent = <&gic>;
#address-cells = <2>;
#size-cells = <2>;
aliases {
serial0 = &uart_B;
i2c0 = &i2c0;
i2c1 = &i2c1;
i2c2 = &i2c2;
i2c3 = &i2c3;
};
memory@00000000 {
device_type = "memory";
linux,usable-memory = <0x0 0x0 0x0 0x40000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
/* global autoconfigured region for contiguous allocations */
secmon_reserved: linux,secmon {
compatible = "shared-dma-pool";
reusable;
size = <0x0 0x400000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x05000000 0x0 0x400000>;
};
logo_reserved:linux,meson-fb {
compatible = "shared-dma-pool";
reusable;
/* keep sync with fb */
/* fox example:logo_addr = "0x3f800000"*/
size = <0x0 0x800000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x3f800000 0x0 0x800000>;
};
codec_mm_cma:linux,codec_mm_cma {
compatible = "shared-dma-pool";
reusable;
/* ion_codec_mm max can alloc size 80M*/
size = <0x0 0xd000000>;
alignment = <0x0 0x400000>;
linux,contiguous-region;
};
/*di CMA pool */
di_cma_reserved:linux,di_cma {
compatible = "shared-dma-pool";
reusable;
/* buffer_size = 3621952(yuv422 8bit)
* | 4736064(yuv422 10bit)
* | 4074560(yuv422 10bit full pack mode)
* 10x3621952=34.6M(0x23) support 8bit
* 10x4736064=45.2M(0x2e) support 12bit
* 10x4074560=40M(0x28) support 10bit
*/
size = <0x0 0x0B000000>;
//size = <0x0 0x0>;
alignment = <0x0 0x400000>;
};
/* codec shared reserved */
codec_mm_reserved:linux,codec_mm_reserved {
compatible = "amlogic, codec-mm-reserved";
size = <0x0 0x100000>;
alignment = <0x0 0x100000>;
//no-map;
};
ion_cma_reserved:linux,ion-dev {
compatible = "shared-dma-pool";
reusable;
/* device/amlogic/xxx/BoardConfig.mk
* |HWC_PRIMARY_FRAMEBUFFER_WIDTH := 1920
* |HWC_PRIMARY_FRAMEBUFFER_HEIGHT := 1080
* |NUM_FRAMEBUFFER_SURFACE_BUFFERS := 3
* size = 1920 * 1080 * 3 * 4
* (RGBA: 4 bytes/pixel) + 4M(10% * afbc)
*/
size = <0x0 0x00400000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x0 0x0 0x3f400000>;
};
ion_fb_reserved:linux,ion-fb {
compatible = "shared-dma-pool";
reusable;
/* 1920x1080x4x3 round up 4M align */
size = <0x0 0x1c00000>;
alignment = <0x0 0x400000>;
alloc-ranges = <0x0 0x0 0x0 0x3f400000>;
};
};
codec_mm {
compatible = "amlogic, codec, mm";
memory-region = <&codec_mm_cma &codec_mm_reserved>;
dev_name = "codec_mm";
status = "okay";
};
multi-di {
//status = "okay";
/***************************************************
* memory: default is 4
* 0:use reserved;
* 1:use cma;
* 2:use cma as reserved
* 4:use codec mem
***************************************************/
flag_cma = <1>;//t5d unsupport 4K,di 1CH need 42M
//memory-region = <&di_cma_reserved>;
/***************************************************
* clock-range: <min max>
* default: <334 667>
***************************************************/
//clock-range = <334 667>;
/***************************************************
* en_4k: t5d not support 4k
***************************************************/
en_4k = <1>;
keep_dec_vf = <2>;
po_fmt = <6>;
/***************************************************
* post_nub: default is 11 (T7/T3/SC2/S4 new path)
* local 7*4075520 = 28
* post 11*5222400 = 56
***************************************************/
post_nub = <11>;
/***************************************************
* 0:not support
* bit 0: for 4k
* bit 1: for 1080p
***************************************************/
alloc_sct = <1>;
/***************************************************
* hf: default is 0 (T7/T3/SC2/S4 new path)
* 0:not enable;
* 1: enable
***************************************************/
hf = <0>;
};
}; /* end of reserved-memory */
/* SD card */
&sd_emmc_b {
status = "okay";
pinctrl-0 = <&sd_all_pins>;
pinctrl-1 = <&sd_1bit_pins>;
pinctrl-2 = <&sd_clk_gate_pins>;
pinctrl-names = "sd_default",
"sd_1bit_pins",
"clk-gate";
bus-width = <4>;
cap-sd-highspeed;
// sd-uhs-sdr12;
// sd-uhs-sdr25;
// sd-uhs-sdr50;
// sd_uhs-sdr104;
max-frequency = <200000000>;
disable-wp;
non-removable;
// amlogic,dram-access-quirk;
cd-gpios = <&gpio GPIOC_10 GPIO_ACTIVE_HIGH>;
// dat1-gpios = <&gpio GPIOC_1 GPIO_ACTIVE_HIGH>;
//vmmc-supply = <&vddao_3v3>;
//vqmmc-supply = <&emmc_1v8>;
};
&sd_emmc_c {
status = "okay";
pinctrl-names = "default", "clk-gate";
pinctrl-0 = <&emmc_clk_cmd_pins>;
pinctrl-1 = <&emmc_conf_pull_up &emmc_conf_pull_done>;
pinctrl-2 = <&emmc_pins_sleep>;
bus-width = <8>;
cap-mmc-highspeed;
//mmc-ddr-1_8v;
// mmc-hs200-1_8v;
// mmc-hs400-1_8v;
max-frequency = <200000000>;
non-removable;
disable-wp;
// mmc-pwrseq = <&emmc_pwrseq>;
// vmmc-supply = <&vddao_3v3>;
// vqmmc-supply = <&vddao_1v8>;
};
&i2c1 {
pinctrl-names = "default";
pinctrl-0 = <&i2c1_ao_pins1>;
status = "disabled";
};
&amlvecm {
status = "okay";
gamma_en = <1>;/*1:enabel ;0:disable*/
wb_en = <1>;/*1:enabel ;0:disable*/
cm_en = <1>;/*1:enabel ;0:disable*/
wb_sel = <0>;/*1:mtx ;0:gainoff*/
vlock_en = <1>;/*1:enable;0:disable*/
vlock_mode = <0x8>;
/*vlock work mode:
*bit0:auto ENC
*bit1:auto PLL
*bit2:manual PLL
*bit3:manual ENC
*bit4:manual soft ENC
*bit5:manual MIX PLL ENC
*/
vlock_pll_m_limit = <1>;
vlock_line_limit = <2>;
};
&fb {
status = "okay";
display_size_default = <1920 1080 1920 2160 32>;
mem_size = <0x00800000 0x1980000 0x100000 0x100000>;
logo_addr = "0x3f800000";
/* display_device_cnt = <2>; */ /* for dual screen upport */
mem_alloc = <0>;
pxp_mode = <1>; /** 0:normal mode 1:pxp mode */
};