| /* |
| * Copyright (c) 2023-2024, Arm Limited. All rights reserved. |
| * |
| * SPDX-License-Identifier: BSD-3-Clause |
| */ |
| |
| #include <dt-bindings/interrupt-controller/arm-gic.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| |
| /* 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(pref) pref##45000000 /* hex */ |
| #define MHU_RX_ADDR(pref) pref##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(pref) pref##46040000 /* hex */ |
| #define MHU_RX_ADDR(pref) pref##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 = <VENCODER_TIMING_CLK>; \ |
| 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(pref) pref##2cc00000 |
| #define DPU_IRQ 69 |
| #else /* TARGET_PLATFORM >= 3 */ |
| #define DPU_ADDR(pref) pref##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 = <VENCODER_TIMING_CLK>; \ |
| 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(pref) pref##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 = <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>; |
| }; |
| #endif /* TARGET_PLATFORM <= 2 */ |
| |
| #if !TC_DPU_USE_SCMI_CLK |
| dpu_aclk: dpu_aclk { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <VENCODER_TIMING_CLK>; |
| clock-output-names = "fpga:dpu_aclk"; |
| }; |
| |
| dpu_pixel_clk: dpu-pixel-clk { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| clock-frequency = <VENCODER_TIMING_CLK>; |
| clock-output-names = "pxclk"; |
| }; |
| #endif /* !TC_DPU_USE_SCMI_CLK */ |
| }; |