#ifndef __PANTHOR_HW_H__
#define __PANTHOR_HW_H__
#include "panthor_device.h"
#include "panthor_regs.h"
struct panthor_hw_ops {
int (*soft_reset)(struct panthor_device *ptdev);
void (*l2_power_off)(struct panthor_device *ptdev);
int (*l2_power_on)(struct panthor_device *ptdev);
};
struct panthor_hw {
struct panthor_hw_ops ops;
};
int panthor_hw_init(struct panthor_device *ptdev);
static inline int panthor_hw_soft_reset(struct panthor_device *ptdev)
{
return ptdev->hw->ops.soft_reset(ptdev);
}
static inline int panthor_hw_l2_power_on(struct panthor_device *ptdev)
{
return ptdev->hw->ops.l2_power_on(ptdev);
}
static inline void panthor_hw_l2_power_off(struct panthor_device *ptdev)
{
ptdev->hw->ops.l2_power_off(ptdev);
}
static inline bool panthor_hw_has_pwr_ctrl(struct panthor_device *ptdev)
{
return GPU_ARCH_MAJOR(ptdev->gpu_info.gpu_id) >= 14;
}
#endif