#include <linux/platform_device.h>
#include <linux/pm_domain.h>
#include <linux/bitfield.h>
#include <linux/regmap.h>
#include <linux/mfd/syscon.h>
#include <linux/of.h>
#include <linux/reset.h>
#include <linux/clk.h>
#include <linux/module.h>
#define AO_RTI_GEN_PWR_SLEEP0 …
#define GEN_PWR_VPU_HDMI …
#define GEN_PWR_VPU_HDMI_ISO …
#define HHI_MEM_PD_REG0 …
#define HHI_VPU_MEM_PD_REG0 …
#define HHI_VPU_MEM_PD_REG1 …
#define HHI_VPU_MEM_PD_REG2 …
struct meson_gx_pwrc_vpu { … };
static inline
struct meson_gx_pwrc_vpu *genpd_to_pd(struct generic_pm_domain *d)
{ … }
static int meson_gx_pwrc_vpu_power_off(struct generic_pm_domain *genpd)
{ … }
static int meson_g12a_pwrc_vpu_power_off(struct generic_pm_domain *genpd)
{ … }
static int meson_gx_pwrc_vpu_setup_clk(struct meson_gx_pwrc_vpu *pd)
{ … }
static int meson_gx_pwrc_vpu_power_on(struct generic_pm_domain *genpd)
{ … }
static int meson_g12a_pwrc_vpu_power_on(struct generic_pm_domain *genpd)
{ … }
static bool meson_gx_pwrc_vpu_get_power(struct meson_gx_pwrc_vpu *pd)
{ … }
static struct meson_gx_pwrc_vpu vpu_hdmi_pd = …;
static struct meson_gx_pwrc_vpu vpu_hdmi_pd_g12a = …;
static int meson_gx_pwrc_vpu_probe(struct platform_device *pdev)
{ … }
static void meson_gx_pwrc_vpu_shutdown(struct platform_device *pdev)
{ … }
static const struct of_device_id meson_gx_pwrc_vpu_match_table[] = …;
MODULE_DEVICE_TABLE(of, meson_gx_pwrc_vpu_match_table);
static struct platform_driver meson_gx_pwrc_vpu_driver = …;
module_platform_driver(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;