/* * Copyright (c) 2023-2024, Arm Limited. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include #include /* If SCMI power domain control is enabled */ #if TC_SCMI_PD_CTRL_EN #define GPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 1) #define DPU_SCMI_PD_IDX (PLAT_MAX_CPUS_PER_CLUSTER + 2) #endif /* TC_SCMI_PD_CTRL_EN */ /* All perf is normalized against the big core */ #define BIG_CAPACITY 1024 #if TARGET_PLATFORM <= 2 #if TARGET_FLAVOUR_FVP #define LIT_CAPACITY 406 #define MID_CAPACITY 912 #else /* TARGET_FLAVOUR_FPGA */ #define LIT_CAPACITY 280 #define MID_CAPACITY 775 /* this is an area optimized configuration of the big core */ #define BIG2_CAPACITY 930 #endif /* TARGET_FLAVOUR_FPGA */ #define INT_MBOX_RX 317 #define MHU_TX_ADDR 45000000 /* hex */ #define MHU_RX_ADDR 45010000 /* hex */ #define MPAM_ADDR 0x1 0x00010000 /* 0x1_0001_0000 */ #define UARTCLK_FREQ 5000000 #elif TARGET_PLATFORM == 3 #define LIT_CAPACITY 239 #define MID_CAPACITY 686 #define INT_MBOX_RX 300 #define MHU_TX_ADDR 46040000 /* hex */ #define MHU_RX_ADDR 46140000 /* hex */ #define MPAM_ADDR 0x0 0x5f010000 /* 0x5f01_0000 */ #define UARTCLK_FREQ 3750000 #endif /* TARGET_PLATFORM == 3 */ #if TARGET_FLAVOUR_FVP #define STDOUT_PATH "serial0:115200n8" #define GIC_CTRL_ADDR 2c010000 #define GIC_GICR_OFFSET 0x200000 #define UART_OFFSET 0x1000 #define VENCODER_TIMING_CLK 25175000 #define VENCODER_TIMING \ clock-frequency = ; \ hactive = <640>; \ vactive = <480>; \ hfront-porch = <16>; \ hback-porch = <48>; \ hsync-len = <96>; \ vfront-porch = <10>; \ vback-porch = <33>; \ vsync-len = <2> #define ETH_COMPATIBLE "smsc,lan91c111" #define MMC_REMOVABLE cd-gpios = <&sysreg 0 0> #if TARGET_PLATFORM <= 2 #define DPU_ADDR 2cc00000 #define DPU_IRQ 69 #else /* TARGET_PLATFORM >= 3 */ #define DPU_ADDR 4000000000 #define DPU_IRQ 579 #endif /* TARGET_PLATFORM >= 3 */ #else /* TARGET_FLAVOUR_FPGA */ #define STDOUT_PATH "serial0:38400n8" #define GIC_CTRL_ADDR 30000000 #define GIC_GICR_OFFSET 0x1000000 #define UART_OFFSET 0x10000 /* 1440x3200@120 framebuffer */ #define VENCODER_TIMING_CLK 836000000 #define VENCODER_TIMING \ clock-frequency = ; \ hactive = <1440>; \ vactive = <3200>; \ hfront-porch = <136>; \ hback-porch = <296>; \ hsync-len = <160>; \ vfront-porch = <3>; \ vback-porch = <217>; \ vsync-len = <10> #define ETH_COMPATIBLE "smsc,lan9115" #define MMC_REMOVABLE non-removable #define DPU_ADDR 2cc00000 #define DPU_IRQ 69 #endif /* TARGET_FLAVOUR_FPGA */ /* Use SCMI controlled clocks */ #if TC_DPU_USE_SCMI_CLK #define DPU_CLK_ATTR1 \ clocks = <&scmi_clk 0>; \ clock-names = "aclk" #define DPU_CLK_ATTR2 \ clocks = <&scmi_clk 1>; \ clock-names = "pxclk" #define DPU_CLK_ATTR3 \ clocks = <&scmi_clk 2>; \ clock-names = "pxclk" \ /* Use fixed clocks */ #else /* !TC_DPU_USE_SCMI_CLK */ #define DPU_CLK_ATTR1 \ clocks = <&dpu_aclk>; \ clock-names = "aclk" #define DPU_CLK_ATTR2 \ clocks = <&dpu_pixel_clk>, <&dpu_aclk>; \ clock-names = "pxclk", "aclk" #define DPU_CLK_ATTR3 DPU_CLK_ATTR2 #endif /* !TC_DPU_USE_SCMI_CLK */ / { #if TARGET_PLATFORM <= 2 cmn-pmu { compatible = "arm,ci-700"; reg = <0x0 0x50000000 0x0 0x10000000>; interrupts = ; }; #endif /* TARGET_PLATFORM <= 2 */ #if !TC_DPU_USE_SCMI_CLK dpu_aclk: dpu_aclk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = ; clock-output-names = "fpga:dpu_aclk"; }; dpu_pixel_clk: dpu-pixel-clk { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = ; clock-output-names = "pxclk"; }; #endif /* !TC_DPU_USE_SCMI_CLK */ };