Files
linux-nv-oot/drivers/net/can/mttcan/hal/m_ttcan_intr.c
Manish Bhardwaj 0e0d2f2c07 nvidia-oot: add support for mttcan driver
Using this patch we are adding support for
mttcan driver in oot kernel.

JIRA ESLC-6885

Signed-off-by: Manish Bhardwaj <mbhardwaj@nvidia.com>
Change-Id: I83a6d43aa99278a546778cf1700e2bd106ec42a9
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2785360
Reviewed-by: Bitan Biswas <bbiswas@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2022-10-03 21:31:05 -07:00

63 lines
1.5 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
*/
#include "../include/m_ttcan.h"
void ttcan_clear_intr(struct ttcan_controller *ttcan)
{
ttcan_write32(ttcan, ADR_MTTCAN_IR, 0xFFFFFFFF);
}
void ttcan_clear_tt_intr(struct ttcan_controller *ttcan)
{
ttcan_write32(ttcan, ADR_MTTCAN_TTIR, 0xFFFFFFFF);
}
u32 ttcan_read_ir(struct ttcan_controller *ttcan)
{
return ttcan_read32(ttcan, ADR_MTTCAN_IR);
}
void ttcan_ir_write(struct ttcan_controller *ttcan, u32 value)
{
return ttcan_write32(ttcan, ADR_MTTCAN_IR, value);
}
void ttcan_ttir_write(struct ttcan_controller *ttcan, u32 value)
{
return ttcan_write32(ttcan, ADR_MTTCAN_TTIR, value);
}
u32 ttcan_read_ttir(struct ttcan_controller *ttcan)
{
return ttcan_read32(ttcan, ADR_MTTCAN_TTIR);
}
void ttcan_ier_write(struct ttcan_controller *ttcan, u32 val)
{
ttcan_write32(ttcan, ADR_MTTCAN_IE, val);
}
void ttcan_ttier_write(struct ttcan_controller *ttcan, u32 val)
{
ttcan_write32(ttcan, ADR_MTTCAN_TTIE, val);
}
void ttcan_set_intrpts(struct ttcan_controller *ttcan, int enable)
{
if (enable) {
ttcan_write32(ttcan, ADR_MTTCAN_IE, ttcan->intr_enable_reg);
ttcan_write32(ttcan, ADR_MTTCAN_TTIE,
ttcan->intr_tt_enable_reg);
ttcan_write32(ttcan, ADR_MTTCAN_ILE, 0x1);
} else {
ttcan_write32(ttcan, ADR_MTTCAN_IE, 0);
ttcan_write32(ttcan, ADR_MTTCAN_TTIE, 0);
ttcan_write32(ttcan, ADR_MTTCAN_ILE, 0x0);
}
pr_debug("%s:%s intr %x\n", __func__, enable ? "enabled" : "disabled",
ttcan->intr_enable_reg);
}