Kever, > On 23 Jun 2017, at 10:41, Kever Yang <[email protected]> wrote: > > Hi Philipp, > > > On 06/12/2017 10:19 PM, Philipp Tomsich wrote: >> >> >> On Fri, 9 Jun 2017, Kever Yang wrote: >> >>> Rockchip rk322x sysreset is much like rk3036 and other Rockchip SoCs, >>> only difference is that the target register address is different. >>> >>> Signed-off-by: Kever Yang <[email protected]> >>> --- >>> >>> drivers/sysreset/sysreset_rk322x.c | 45 >>> ++++++++++++++++++++++++++++++++++++++ >>> 1 file changed, 45 insertions(+) >>> create mode 100644 drivers/sysreset/sysreset_rk322x.c >>> >>> diff --git a/drivers/sysreset/sysreset_rk322x.c >>> b/drivers/sysreset/sysreset_rk322x.c >>> new file mode 100644 >>> index 0000000..5fce79b >>> --- /dev/null >>> +++ b/drivers/sysreset/sysreset_rk322x.c >>> @@ -0,0 +1,45 @@ >>> +/* >>> + * (C) Copyright 2017 Rockchip Electronics Co., Ltd >>> + * >>> + * SPDX-License-Identifier: GPL-2.0+ >>> + */ >>> + >>> +#include <common.h> >>> +#include <dm.h> >>> +#include <errno.h> >>> +#include <sysreset.h> >>> +#include <asm/io.h> >>> +#include <asm/arch/clock.h> >>> +#include <asm/arch/cru_rk322x.h> >>> +#include <asm/arch/hardware.h> >>> +#include <linux/err.h> >>> + >>> +int rk322x_sysreset_request(struct udevice *dev, enum sysreset_t type) >>> +{ >>> + struct rk322x_cru *cru = rockchip_get_cru(); >>> + >>> + if (IS_ERR(cru)) >>> + return PTR_ERR(cru); >>> + switch (type) { >>> + case SYSRESET_WARM: >>> + writel(0xeca8, &cru->cru_glb_srst_snd_value); >> >> Please make this a symbolic constant, thanks. > > Do you mean define a MACRO and use it?
I think the way this has been done in the past for the Rockchip sub-architecture was to use an enum… Personally, I would prefer a ‘static const u32’, but let’s keep consistent and stick with enums. > Thanks, > - Kever >> >>> + break; >>> + case SYSRESET_COLD: >>> + writel(0xfdb9, &cru->cru_glb_srst_fst_value); >> >> Same. >> >> Reviewed-by: Philipp Tomsich <[email protected]> >> >>> + break; >>> + default: >>> + return -EPROTONOSUPPORT; >>> + } >>> + >>> + return -EINPROGRESS; >>> +} >>> + >>> +static struct sysreset_ops rk322x_sysreset = { >>> + .request = rk322x_sysreset_request, >>> +}; >>> + >>> +U_BOOT_DRIVER(sysreset_rk322x) = { >>> + .name = "rk322x_sysreset", >>> + .id = UCLASS_SYSRESET, >>> + .ops = &rk322x_sysreset, >>> +}; _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

