blob: 5d117af03b7d6a798d6480be8d92bd53debb8c9a [file] [log] [blame]
ot_zhenguo.li6bd9d952023-02-24 13:55:27 +08001/* SPDX-License-Identifier: GPL-2.0-only */
2
3#include <console/console.h>
4#include <device/mmio.h>
5#include <soc/addressmap.h>
6#include <soc/lastbus_v2.h>
7
Yidi Lin9fbdb2b2023-03-28 10:47:27 +08008static const struct lastbus_idle_mask infra_ao_mask[] = {
9 {
10 .reg_offset = 0x04,
11 .reg_value = 0x2,
12 },
13 {
14 .reg_offset = 0x08,
15 .reg_value = 0x10000,
16 },
17};
18
19static const struct lastbus_idle_mask peri_ao_mask[] = {
20 {
21 .reg_offset = 0x04,
22 .reg_value = 0x20000,
23 },
24};
25
26static const struct lastbus_idle_mask fmem_ao_mask[] = {
27 {
28 .reg_offset = 0x14,
29 .reg_value = 0x204,
30 },
31};
32
33static const struct lastbus_monitor monitors[] = {
34 {
35 .name = "debug_ctrl_ao_INFRA_AO",
36 .base = INFRA_AO_DBUG_BASE,
37 .num_ports = 34,
38 .num_idle_mask = ARRAY_SIZE(infra_ao_mask),
39 .idle_masks = infra_ao_mask,
40 .bus_freq_mhz = 78,
41 },
42 {
43 .name = "debug_ctrl_ao_INFRA2_AO",
44 .base = INFRA2_AO_DBUG_BASE,
45 .num_ports = 9,
46 .num_idle_mask = 0,
47 .bus_freq_mhz = 78,
48 },
49 {
50 .name = "debug_ctrl_ao_PERI_AO",
51 .base = PERI_AO_BASE,
52 .num_ports = 25,
53 .num_idle_mask = ARRAY_SIZE(peri_ao_mask),
54 .idle_masks = peri_ao_mask,
55 .bus_freq_mhz = 78,
56 },
57 {
58 .name = "debug_ctrl_ao_PERI_AO2",
59 .base = PERI_AO2_BASE,
60 .num_ports = 20,
61 .num_idle_mask = 0,
62 .bus_freq_mhz = 78,
63 },
64 {
65 .name = "debug_ctrl_ao_PERI_PAR_AO",
66 .base = PERI_PAR_AO_BASE,
67 .num_ports = 18,
68 .num_idle_mask = 0,
69 .bus_freq_mhz = 78,
70 },
71 {
72 .name = "debug_ctrl_ao_FMEM_AO",
73 .base = FMEM_AO_BASE,
74 .num_ports = 28,
75 .num_idle_mask = ARRAY_SIZE(fmem_ao_mask),
76 .idle_masks = fmem_ao_mask,
77 .bus_freq_mhz = 78,
78 },
79};
80
ot_zhenguo.li6bd9d952023-02-24 13:55:27 +080081const struct lastbus_config lastbus_cfg = {
82 .latch_platform = "MT8188",
83 .timeout_ms = 200,
84 .timeout_type = 0,
Yidi Lin9fbdb2b2023-03-28 10:47:27 +080085 .num_used_monitors = ARRAY_SIZE(monitors),
86 .monitors = monitors,
ot_zhenguo.li6bd9d952023-02-24 13:55:27 +080087};