mirror of
https://github.com/torvalds/linux.git
synced 2026-08-07 16:03:49 +02:00
can: rcar_canfd: Add max_cftml variable to struct rcar_canfd_hw_info
R-Car Gen3 has CFTML max positional value is 15 whereas on R-Car Gen4 it is 31. Add a max_cftml variable to struct rcar_canfd_hw_info to handle this difference. While at it, rename the parameter x->cftml in RCANFD_CFCC_CFTML macro to make it clear. Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com> Link: https://patch.msgid.link/20250417054320.14100-12-biju.das.jz@bp.renesas.com Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
This commit is contained in:
parent
2d6cb8ff94
commit
04d7a3a466
|
|
@ -225,8 +225,11 @@
|
|||
/* Common FIFO bits */
|
||||
|
||||
/* RSCFDnCFDCFCCk */
|
||||
#define RCANFD_CFCC_CFTML(gpriv, x) \
|
||||
(((x) & reg_gen4(gpriv, 0x1f, 0xf)) << reg_gen4(gpriv, 16, 20))
|
||||
#define RCANFD_CFCC_CFTML(gpriv, cftml) \
|
||||
({\
|
||||
typeof(gpriv) (_gpriv) = (gpriv); \
|
||||
(((cftml) & (_gpriv)->info->max_cftml) << reg_gen4(_gpriv, 16, 20)); \
|
||||
})
|
||||
#define RCANFD_CFCC_CFM(gpriv, x) (((x) & 0x3) << reg_gen4(gpriv, 8, 16))
|
||||
#define RCANFD_CFCC_CFIM BIT(12)
|
||||
#define RCANFD_CFCC_CFDC(gpriv, x) (((x) & 0x7) << reg_gen4(gpriv, 21, 8))
|
||||
|
|
@ -505,6 +508,7 @@ struct rcar_canfd_global;
|
|||
struct rcar_canfd_hw_info {
|
||||
u8 rnc_field_width;
|
||||
u8 max_aflpn;
|
||||
u8 max_cftml;
|
||||
u8 max_channels;
|
||||
u8 postdiv;
|
||||
/* hardware features */
|
||||
|
|
@ -583,6 +587,7 @@ static const struct can_bittiming_const rcar_canfd_bittiming_const = {
|
|||
static const struct rcar_canfd_hw_info rcar_gen3_hw_info = {
|
||||
.rnc_field_width = 8,
|
||||
.max_aflpn = 31,
|
||||
.max_cftml = 15,
|
||||
.max_channels = 2,
|
||||
.postdiv = 2,
|
||||
.shared_global_irqs = 1,
|
||||
|
|
@ -591,6 +596,7 @@ static const struct rcar_canfd_hw_info rcar_gen3_hw_info = {
|
|||
static const struct rcar_canfd_hw_info rcar_gen4_hw_info = {
|
||||
.rnc_field_width = 16,
|
||||
.max_aflpn = 127,
|
||||
.max_cftml = 31,
|
||||
.max_channels = 8,
|
||||
.postdiv = 2,
|
||||
.shared_global_irqs = 1,
|
||||
|
|
@ -599,6 +605,7 @@ static const struct rcar_canfd_hw_info rcar_gen4_hw_info = {
|
|||
static const struct rcar_canfd_hw_info rzg2l_hw_info = {
|
||||
.rnc_field_width = 8,
|
||||
.max_aflpn = 31,
|
||||
.max_cftml = 15,
|
||||
.max_channels = 2,
|
||||
.postdiv = 1,
|
||||
.multi_channel_irqs = 1,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user