Commit | Line | Data |
---|---|---|
6c3324a9 VB |
1 | /* Altera TSE SGDMA and MSGDMA Linux driver |
2 | * Copyright (C) 2014 Altera Corporation. All rights reserved | |
3 | * | |
4 | * This program is free software; you can redistribute it and/or modify it | |
5 | * under the terms and conditions of the GNU General Public License, | |
6 | * version 2, as published by the Free Software Foundation. | |
7 | * | |
8 | * This program is distributed in the hope it will be useful, but WITHOUT | |
9 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
10 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | |
11 | * more details. | |
12 | * | |
13 | * You should have received a copy of the GNU General Public License along with | |
14 | * this program. If not, see <http://www.gnu.org/licenses/>. | |
15 | */ | |
16 | ||
17 | #include "altera_tse.h" | |
18 | #include "altera_utils.h" | |
19 | ||
89830580 | 20 | void tse_set_bit(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 21 | { |
89830580 | 22 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 | 23 | value |= bit_mask; |
89830580 | 24 | csrwr32(value, ioaddr, offs); |
6c3324a9 VB |
25 | } |
26 | ||
89830580 | 27 | void tse_clear_bit(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 28 | { |
89830580 | 29 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 | 30 | value &= ~bit_mask; |
89830580 | 31 | csrwr32(value, ioaddr, offs); |
6c3324a9 VB |
32 | } |
33 | ||
89830580 | 34 | int tse_bit_is_set(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 35 | { |
89830580 | 36 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 VB |
37 | return (value & bit_mask) ? 1 : 0; |
38 | } | |
39 | ||
89830580 | 40 | int tse_bit_is_clear(void __iomem *ioaddr, size_t offs, u32 bit_mask) |
6c3324a9 | 41 | { |
89830580 | 42 | u32 value = csrrd32(ioaddr, offs); |
6c3324a9 VB |
43 | return (value & bit_mask) ? 0 : 1; |
44 | } |