linux/drivers/pmdomain/renesas/rcar-gen4-sysc.c

// SPDX-License-Identifier: GPL-2.0
/*
 * R-Car Gen4 SYSC Power management support
 *
 * Copyright (C) 2021 Renesas Electronics Corp.
 */

#include <linux/bits.h>
#include <linux/clk/renesas.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/io.h>
#include <linux/iopoll.h>
#include <linux/kernel.h>
#include <linux/mm.h>
#include <linux/of_address.h>
#include <linux/pm_domain.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/types.h>

#include "rcar-gen4-sysc.h"

/* SYSC Common */
#define SYSCSR
#define SYSCPONSR(x)
#define SYSCPOFFSR(x)
#define SYSCISCR(x)
#define SYSCIER(x)
#define SYSCIMR(x)

/* Power Domain Registers */
#define PDRSR(n)
#define PDRONCR(n)
#define PDROFFCR(n)
#define PDRESR(n)

/* PWRON/PWROFF */
#define PWRON_PWROFF

/* PDRESR */
#define PDRESR_ERR

/* PDRSR */
#define PDRSR_OFF
#define PDRSR_ON
#define PDRSR_OFF_STATE
#define PDRSR_ON_STATE

#define SYSCSR_BUSY

#define SYSCSR_TIMEOUT
#define SYSCSR_DELAY_US

#define PDRESR_RETRIES
#define PDRESR_DELAY_US

#define SYSCISCR_TIMEOUT
#define SYSCISCR_DELAY_US

#define RCAR_GEN4_PD_ALWAYS_ON
#define NUM_DOMAINS_EACH_REG

static void __iomem *rcar_gen4_sysc_base;
static DEFINE_SPINLOCK(rcar_gen4_sysc_lock); /* SMP CPUs + I/O devices */

static int rcar_gen4_sysc_pwr_on_off(u8 pdr, bool on)
{}

static int clear_irq_flags(unsigned int reg_idx, unsigned int isr_mask)
{}

static int rcar_gen4_sysc_power(u8 pdr, bool on)
{}

static bool rcar_gen4_sysc_power_is_off(u8 pdr)
{}

struct rcar_gen4_sysc_pd {};

static inline struct rcar_gen4_sysc_pd *to_rcar_gen4_pd(struct generic_pm_domain *d)
{}

static int rcar_gen4_sysc_pd_power_off(struct generic_pm_domain *genpd)
{}

static int rcar_gen4_sysc_pd_power_on(struct generic_pm_domain *genpd)
{}

static int __init rcar_gen4_sysc_pd_setup(struct rcar_gen4_sysc_pd *pd)
{}

static const struct of_device_id rcar_gen4_sysc_matches[] __initconst =;

struct rcar_gen4_pm_domains {};

static struct genpd_onecell_data *rcar_gen4_sysc_onecell_data;

static int __init rcar_gen4_sysc_pd_init(void)
{}
early_initcall(rcar_gen4_sysc_pd_init);