/*
 * Copyright (c) 2019 Lexmark International, Inc.
 *
 * SPDX-License-Identifier: Apache-2.0
 *
 */

#undef DT_INST_0_XLNX_XUARTPS_IRQ_0
#define DT_INST_0_XLNX_XUARTPS_IRQ_0	((DT_INST_0_XLNX_XUARTPS_IRQ_IRQ_0 + 1) << 8)

#undef DT_INST_0_CDNS_TTC_IRQ_0
#define DT_INST_0_CDNS_TTC_IRQ_0	((DT_INST_0_CDNS_TTC_IRQ_IRQ_0 + 1) << 8)
#undef DT_INST_0_CDNS_TTC_IRQ_1
#define DT_INST_0_CDNS_TTC_IRQ_1	((DT_INST_0_CDNS_TTC_IRQ_IRQ_1 + 1) << 8)
#undef DT_INST_0_CDNS_TTC_IRQ_2
#define DT_INST_0_CDNS_TTC_IRQ_2	((DT_INST_0_CDNS_TTC_IRQ_IRQ_2 + 1) << 8)
