Commit | Line | Data |
---|---|---|
9952f691 | 1 | // SPDX-License-Identifier: GPL-2.0-only |
6c3324a9 VB |
2 | /* Altera TSE SGDMA and MSGDMA Linux driver |
3 | * Copyright (C) 2014 Altera Corporation. All rights reserved | |
6c3324a9 VB |
4 | */ |
5 | ||
6 | #include "altera_tse.h" | |
7 | #include "altera_utils.h" | |
8 | ||
89830580 | 9 | void tse_set_bit(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 10 | { |
89830580 | 11 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 | 12 | value |= bit_mask; |
89830580 | 13 | csrwr32(value, ioaddr, offs); |
6c3324a9 VB |
14 | } |
15 | ||
89830580 | 16 | void tse_clear_bit(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 17 | { |
89830580 | 18 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 | 19 | value &= ~bit_mask; |
89830580 | 20 | csrwr32(value, ioaddr, offs); |
6c3324a9 VB |
21 | } |
22 | ||
89830580 | 23 | int tse_bit_is_set(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 24 | { |
89830580 | 25 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 VB |
26 | return (value & bit_mask) ? 1 : 0; |
27 | } | |
28 | ||
89830580 | 29 | int tse_bit_is_clear(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 30 | { |
89830580 | 31 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 VB |
32 | return (value & bit_mask) ? 0 : 1; |
33 | } |