| /* |
| * Copyright (c) 2009 Mindspeed Technologies, Inc. |
| * |
| * This program is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU General Public License |
| * as published by the Free Software Foundation; either version 2 |
| * of the License, or (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
| * |
| */ |
| #ifndef _SCHED_H_ |
| #define _SCHED_H_ |
| |
| /* Offsets from SCHEDx_BASE_ADDR */ |
| #define SCHED_CTRL 0x00 |
| #define SCHED_SLOT_TIME 0x04 |
| #define SCHED_RES 0x08 |
| #define SCHED_QUEUE_ALLOC0 0x0c |
| #define SCHED_QUEUE_ALLOC1 0x10 |
| #define SCHED_BW 0x14 |
| #define SCHED_GUR_DEF_CTR 0x18 |
| #define SCHED_AVL_CTR 0x1c |
| #define SCHED_QU0_WGHT 0x20 |
| #define SCHED_QU1_WGHT 0x24 |
| #define SCHED_QU2_WGHT 0x28 |
| #define SCHED_QU3_WGHT 0x2c |
| #define SCHED_QU4_WGHT 0x30 |
| #define SCHED_QU5_WGHT 0x34 |
| #define SCHED_QU6_WGHT 0x38 |
| #define SCHED_QU7_WGHT 0x3c |
| #define SCHED_QUE0_DEFICIT_CNT 0x40 |
| #define SCHED_QUE1_DEFICIT_CNT 0x44 |
| #define SCHED_QUE2_DEFICIT_CNT 0x48 |
| #define SCHED_QUE3_DEFICIT_CNT 0x4c |
| #define SCHED_QUE4_DEFICIT_CNT 0x50 |
| #define SCHED_QUE5_DEFICIT_CNT 0x54 |
| #define SCHED_QUE6_DEFICIT_CNT 0x58 |
| #define SCHED_QUE7_DEFICIT_CNT 0x5c |
| #define SCHED_PKT_LEN 0x60 |
| |
| #define SCHED_CTRL_ALGOTYPE(x) (((x) & 0xf) << 0) |
| #define SCHED_CTRL_CALQUOTA(x) (((x) & 0x1) << 4) |
| #define SCHED_CTRL_ACTIVE_Q(x) (((x) & 0xff) << 8) |
| #define SCHED_CTRL_SHARE_BW(x) (((x) & 0xff) << 16) |
| #define SCHED_CTRL_BARROW_BW(x) (((x) & 0xff) << 24) |
| |
| #define SCHED_QUEUE_ALLOC(x, b) (((x) & 0x1f) << (b)) |
| |
| #define SCHED_QUEUE_ALLOC0_QUEUEA(x) (((x) & 0x1f) << 0) |
| #define SCHED_QUEUE_ALLOC0_QUEUEB(x) (((x) & 0x1f) << 8) |
| #define SCHED_QUEUE_ALLOC0_QUEUEC(x) (((x) & 0x1f) << 16) |
| #define SCHED_QUEUE_ALLOC0_QUEUED(x) (((x) & 0x1f) << 24) |
| |
| #define SCHED_QUEUE_ALLOC0_RES0(x) (((x) & 0x7) << 5) |
| #define SCHED_QUEUE_ALLOC0_RES1(x) (((x) & 0x7) << 13) |
| #define SCHED_QUEUE_ALLOC0_RES2(x) (((x) & 0x7) << 21) |
| #define SCHED_QUEUE_ALLOC0_RES3(x) (((x) & 0x7) << 29) |
| |
| #define SCHED_QUEUE_ALLOC1_QUEUEA(x) (((x) & 0x1f) << 0) |
| #define SCHED_QUEUE_ALLOC1_QUEUEB(x) (((x) & 0x1f) << 8) |
| #define SCHED_QUEUE_ALLOC1_QUEUEC(x) (((x) & 0x1f) << 16) |
| #define SCHED_QUEUE_ALLOC1_QUEUED(x) (((x) & 0x1f) << 24) |
| |
| #endif /* _SCHED_H_ */ |