[PATCH v3 4/6] lib: utils: atcsmu: Add Andes System Management Unit support
Yu-Chien Peter Lin
peterlin at andestech.com
Thu Jan 19 18:11:26 PST 2023
Hi Chauhan,
On Thu, Jan 19, 2023 at 08:56:07PM +0530, Himanshu Chauhan wrote:
> On Wed, Jan 18, 2023 at 03:53:19PM +0800, Yu Chien Peter Lin wrote:
> > This patch adds atcsmu support for Andes AE350 platforms. The SMU
> > provides system management capabilities, including clock, reset
> > and power control based on power domain partitions.
> >
> > Signed-off-by: Yu Chien Peter Lin <peterlin at andestech.com>
> > ---
> > include/sbi_utils/sys/atcsmu.h | 53 ++++++++++++++++++++
> > lib/utils/sys/Kconfig | 4 ++
> > lib/utils/sys/atcsmu.c | 92 ++++++++++++++++++++++++++++++++++
> > lib/utils/sys/objects.mk | 1 +
> > platform/generic/Kconfig | 1 +
> > 5 files changed, 151 insertions(+)
> > create mode 100644 include/sbi_utils/sys/atcsmu.h
> > create mode 100644 lib/utils/sys/atcsmu.c
> >
> > diff --git a/include/sbi_utils/sys/atcsmu.h b/include/sbi_utils/sys/atcsmu.h
> > new file mode 100644
> > index 00000000..0dd923fe
> > --- /dev/null
> > +++ b/include/sbi_utils/sys/atcsmu.h
> > @@ -0,0 +1,53 @@
> > +/*
> > + * SPDX-License-Identifier: BSD-3-Clause
> > + *
> > + * Copyright (c) 2023 Andes Technology Corporation
> > + */
> > +
> > +#ifndef _SYS_ATCSMU_H
> > +#define _SYS_ATCSMU_H
> > +
> > +#include <sbi/sbi_types.h>
> > +
> > +#define PCS0_WE_OFFSET 0x90
> > +#define PCSm_WE_OFFSET(i) ((i + 3) * 0x20 + PCS0_WE_OFFSET)
> > +
> > +#define PCS0_CTL_OFFSET 0x94
> > +#define PCSm_CTL_OFFSET(i) ((i + 3) * 0x20 + PCS0_CTL_OFFSET)
> > +#define PCS_CTL_CMD_SHIFT 0
> > +#define PCS_CTL_PARAM_SHIFT 3
> > +#define SLEEP_CMD 0x3
> > +#define WAKEUP_CMD (0x0 | (1 << PCS_CTL_PARAM_SHIFT))
> > +#define LIGHTSLEEP_MODE 0
> > +#define DEEPSLEEP_MODE 1
> > +#define LIGHT_SLEEP_CMD (SLEEP_CMD | (LIGHTSLEEP_MODE << PCS_CTL_PARAM_SHIFT))
> > +#define DEEP_SLEEP_CMD (SLEEP_CMD | (DEEPSLEEP_MODE << PCS_CTL_PARAM_SHIFT))
> > +
> > +#define PCS0_CFG_OFFSET 0x80
> > +#define PCSm_CFG_OFFSET(i) ((i + 3) * 0x20 + PCS0_CFG_OFFSET)
> > +#define PCS_CFG_LIGHT_SLEEP_SHIFT 2
> > +#define PCS_CFG_LIGHT_SLEEP (1 << PCS_CFG_LIGHT_SLEEP_SHIFT)
> > +#define PCS_CFG_DEEP_SLEEP_SHIFT 3
> > +#define PCS_CFG_DEEP_SLEEP (1 << PCS_CFG_DEEP_SLEEP_SHIFT)
> > +#define RESET_VEC_LO_OFFSET 0x50
> > +#define RESET_VEC_HI_OFFSET 0x60
> > +#define RESET_VEC_8CORE_OFFSET 0x1a0
> > +#define HARTn_RESET_VEC_LO(n) \
> > + (RESET_VEC_LO_OFFSET + \
> > + ((n) < 4 ? 0 : RESET_VEC_8CORE_OFFSET) + ((n) * 0x4))
> > +#define HARTn_RESET_VEC_HI(n) \
> > + (RESET_VEC_HI_OFFSET + \
> > + ((n) < 4 ? 0 : RESET_VEC_8CORE_OFFSET) + ((n) * 0x4))
> > +#define PCS_MAX_NR 8
> > +#define FLASH_BASE 0x80000000ULL
> Just a nit, can the values of macros be aligned for better readability?
Sure, I will fix the indentation.
Thanks,
Peter Lin
More information about the opensbi
mailing list