Module Name: src Committed By: ryo Date: Tue Aug 23 05:32:18 UTC 2022
Modified Files: src/sys/arch/arm/rockchip: rk3399_cru.c rk_cru.h rk_cru_arm.c Log Message: Make .reg1 and .reg2 of struct rk_cru_cpu_rate into array, and change the type of those to bus_size_t and uint32_t. Array size may increase in the future. To generate a diff of this commit: cvs rdiff -u -r1.23 -r1.24 src/sys/arch/arm/rockchip/rk3399_cru.c cvs rdiff -u -r1.8 -r1.9 src/sys/arch/arm/rockchip/rk_cru.h cvs rdiff -u -r1.2 -r1.3 src/sys/arch/arm/rockchip/rk_cru_arm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/arm/rockchip/rk3399_cru.c diff -u src/sys/arch/arm/rockchip/rk3399_cru.c:1.23 src/sys/arch/arm/rockchip/rk3399_cru.c:1.24 --- src/sys/arch/arm/rockchip/rk3399_cru.c:1.23 Fri Nov 12 22:02:08 2021 +++ src/sys/arch/arm/rockchip/rk3399_cru.c Tue Aug 23 05:32:18 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: rk3399_cru.c,v 1.23 2021/11/12 22:02:08 jmcneill Exp $ */ +/* $NetBSD: rk3399_cru.c,v 1.24 2022/08/23 05:32:18 ryo Exp $ */ /*- * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca> @@ -28,7 +28,7 @@ #include <sys/cdefs.h> -__KERNEL_RCSID(1, "$NetBSD: rk3399_cru.c,v 1.23 2021/11/12 22:02:08 jmcneill Exp $"); +__KERNEL_RCSID(1, "$NetBSD: rk3399_cru.c,v 1.24 2022/08/23 05:32:18 ryo Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -143,15 +143,22 @@ static const struct rk_cru_pll_rate pll_ #define RK3399_ATCLK_MASK __BITS(4,0) #define RK3399_PDBG_MASK __BITS(12,8) +#define RK3399_CPU_RATE(_rate, _reg0, _reg0_mask, _reg0_val, _reg1, _reg1_mask, _reg1_val)\ + { \ + .rate = (_rate), \ + .divs[0] = { .reg = (_reg0), .mask = (_reg0_mask), .val = (_reg0_val) },\ + .divs[1] = { .reg = (_reg1), .mask = (_reg1_mask), .val = (_reg1_val) },\ + } + #define RK3399_CPUL_RATE(_rate, _aclkm, _atclk, _pdbg) \ - RK_CPU_RATE(_rate, \ + RK3399_CPU_RATE(_rate, \ CLKSEL_CON(0), RK3399_ACLKM_MASK, \ __SHIFTIN((_aclkm), RK3399_ACLKM_MASK), \ CLKSEL_CON(1), RK3399_ATCLK_MASK|RK3399_PDBG_MASK, \ __SHIFTIN((_atclk), RK3399_ATCLK_MASK)|__SHIFTIN((_pdbg), RK3399_PDBG_MASK)) #define RK3399_CPUB_RATE(_rate, _aclkm, _atclk, _pdbg) \ - RK_CPU_RATE(_rate, \ + RK3399_CPU_RATE(_rate, \ CLKSEL_CON(2), RK3399_ACLKM_MASK, \ __SHIFTIN((_aclkm), RK3399_ACLKM_MASK), \ CLKSEL_CON(3), RK3399_ATCLK_MASK|RK3399_PDBG_MASK, \ Index: src/sys/arch/arm/rockchip/rk_cru.h diff -u src/sys/arch/arm/rockchip/rk_cru.h:1.8 src/sys/arch/arm/rockchip/rk_cru.h:1.9 --- src/sys/arch/arm/rockchip/rk_cru.h:1.8 Fri Nov 12 22:02:08 2021 +++ src/sys/arch/arm/rockchip/rk_cru.h Tue Aug 23 05:32:18 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: rk_cru.h,v 1.8 2021/11/12 22:02:08 jmcneill Exp $ */ +/* $NetBSD: rk_cru.h,v 1.9 2022/08/23 05:32:18 ryo Exp $ */ /*- * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca> @@ -141,18 +141,16 @@ struct rk_cru_arm_rate { .div = (_div), \ } -struct rk_cru_cpu_rate { - u_int rate; - u_int reg1, reg1_mask, reg1_val; - u_int reg2, reg2_mask, reg2_val; +struct rk_regmaskval { + bus_size_t reg; + uint32_t mask; + uint32_t val; }; -#define RK_CPU_RATE(_rate, _reg1, _reg1_mask, _reg1_val, _reg2, _reg2_mask, _reg2_val) \ - { \ - .rate = (_rate), \ - .reg1 = (_reg1), .reg1_mask = (_reg1_mask), .reg1_val = (_reg1_val), \ - .reg2 = (_reg2), .reg2_mask = (_reg2_mask), .reg2_val = (_reg2_val), \ - } +struct rk_cru_cpu_rate { + u_int rate; + struct rk_regmaskval divs[2]; +}; struct rk_cru_arm { bus_size_t reg; Index: src/sys/arch/arm/rockchip/rk_cru_arm.c diff -u src/sys/arch/arm/rockchip/rk_cru_arm.c:1.2 src/sys/arch/arm/rockchip/rk_cru_arm.c:1.3 --- src/sys/arch/arm/rockchip/rk_cru_arm.c:1.2 Sat Sep 1 19:35:53 2018 +++ src/sys/arch/arm/rockchip/rk_cru_arm.c Tue Aug 23 05:32:18 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: rk_cru_arm.c,v 1.2 2018/09/01 19:35:53 jmcneill Exp $ */ +/* $NetBSD: rk_cru_arm.c,v 1.3 2022/08/23 05:32:18 ryo Exp $ */ /*- * Copyright (c) 2018 Jared McNeill <jmcne...@invisible.ca> @@ -27,7 +27,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rk_cru_arm.c,v 1.2 2018/09/01 19:35:53 jmcneill Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rk_cru_arm.c,v 1.3 2022/08/23 05:32:18 ryo Exp $"); #include <sys/param.h> #include <sys/bus.h> @@ -147,13 +147,11 @@ rk_cru_arm_set_rate_cpurates(struct rk_c if (error != 0) goto done; - write_mask = cpu_rate->reg1_mask << 16; - write_val = cpu_rate->reg1_val; - CRU_WRITE(sc, cpu_rate->reg1, write_mask | write_val); - - write_mask = cpu_rate->reg2_mask << 16; - write_val = cpu_rate->reg2_val; - CRU_WRITE(sc, cpu_rate->reg2, write_mask | write_val); + for (int i = 0; i < __arraycount(cpu_rate->divs); i++) { + write_mask = cpu_rate->divs[i].mask << 16; + write_val = cpu_rate->divs[i].val; + CRU_WRITE(sc, cpu_rate->divs[i].reg, write_mask | write_val); + } write_mask = arm->div_mask << 16; write_val = __SHIFTIN(0, arm->div_mask);