Skip to content

Commit 34e214a

Browse files
committed
soc/tegra: pmc: Add Tegra234 support
The PMC block is largely similar to that found on earlier chips, but not completely compatible. Allow binding to the instantiation found on Tegra234. Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
1 parent f98485e commit 34e214a

1 file changed

Lines changed: 68 additions & 0 deletions

File tree

drivers/soc/tegra/pmc.c

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3362,7 +3362,75 @@ static const struct tegra_pmc_soc tegra194_pmc_soc = {
33623362
.has_blink_output = false,
33633363
};
33643364

3365+
static const struct tegra_pmc_regs tegra234_pmc_regs = {
3366+
.scratch0 = 0x2000,
3367+
.dpd_req = 0,
3368+
.dpd_status = 0,
3369+
.dpd2_req = 0,
3370+
.dpd2_status = 0,
3371+
.rst_status = 0x70,
3372+
.rst_source_shift = 0x2,
3373+
.rst_source_mask = 0xfc,
3374+
.rst_level_shift = 0x0,
3375+
.rst_level_mask = 0x3,
3376+
};
3377+
3378+
static const char * const tegra234_reset_sources[] = {
3379+
"SYS_RESET_N",
3380+
"AOWDT",
3381+
"BCCPLEXWDT",
3382+
"BPMPWDT",
3383+
"SCEWDT",
3384+
"SPEWDT",
3385+
"APEWDT",
3386+
"LCCPLEXWDT",
3387+
"SENSOR",
3388+
"AOTAG",
3389+
"VFSENSOR",
3390+
"MAINSWRST",
3391+
"SC7",
3392+
"HSM",
3393+
"CSITE",
3394+
"RCEWDT",
3395+
"PVA0WDT",
3396+
"PVA1WDT",
3397+
"L1A_ASYNC",
3398+
"BPMPBOOT",
3399+
"FUSECRC",
3400+
};
3401+
3402+
static const struct tegra_pmc_soc tegra234_pmc_soc = {
3403+
.num_powergates = 0,
3404+
.powergates = NULL,
3405+
.num_cpu_powergates = 0,
3406+
.cpu_powergates = NULL,
3407+
.has_tsense_reset = false,
3408+
.has_gpu_clamps = false,
3409+
.needs_mbist_war = false,
3410+
.has_impl_33v_pwr = true,
3411+
.maybe_tz_only = false,
3412+
.num_io_pads = 0,
3413+
.io_pads = NULL,
3414+
.num_pin_descs = 0,
3415+
.pin_descs = NULL,
3416+
.regs = &tegra234_pmc_regs,
3417+
.init = NULL,
3418+
.setup_irq_polarity = tegra186_pmc_setup_irq_polarity,
3419+
.irq_set_wake = tegra186_pmc_irq_set_wake,
3420+
.irq_set_type = tegra186_pmc_irq_set_type,
3421+
.reset_sources = tegra234_reset_sources,
3422+
.num_reset_sources = ARRAY_SIZE(tegra234_reset_sources),
3423+
.reset_levels = tegra186_reset_levels,
3424+
.num_reset_levels = ARRAY_SIZE(tegra186_reset_levels),
3425+
.num_wake_events = 0,
3426+
.wake_events = NULL,
3427+
.pmc_clks_data = NULL,
3428+
.num_pmc_clks = 0,
3429+
.has_blink_output = false,
3430+
};
3431+
33653432
static const struct of_device_id tegra_pmc_match[] = {
3433+
{ .compatible = "nvidia,tegra234-pmc", .data = &tegra234_pmc_soc },
33663434
{ .compatible = "nvidia,tegra194-pmc", .data = &tegra194_pmc_soc },
33673435
{ .compatible = "nvidia,tegra186-pmc", .data = &tegra186_pmc_soc },
33683436
{ .compatible = "nvidia,tegra210-pmc", .data = &tegra210_pmc_soc },

0 commit comments

Comments
 (0)