ipa_reg.h (f8bade6c9a6213c2c5ba6e5bf32415ecab6e41e5) ipa_reg.h (8ee5df6598ff3c04f3842c87fa326d7cdbec9dd2)
1/* SPDX-License-Identifier: GPL-2.0 */
2
3/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2020 Linaro Ltd.
5 */
6#ifndef _IPA_REG_H_
7#define _IPA_REG_H_
8

--- 566 unchanged lines hidden (view full) ---

575 default:
576 return u32_encode_bits(rsrc_grp, GENMASK(1, 0));
577 }
578}
579
580/* Valid only for TX (IPA consumer) endpoints */
581#define IPA_REG_ENDP_INIT_SEQ_N_OFFSET(txep) \
582 (0x0000083c + 0x0070 * (txep))
1/* SPDX-License-Identifier: GPL-2.0 */
2
3/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
4 * Copyright (C) 2018-2020 Linaro Ltd.
5 */
6#ifndef _IPA_REG_H_
7#define _IPA_REG_H_
8

--- 566 unchanged lines hidden (view full) ---

575 default:
576 return u32_encode_bits(rsrc_grp, GENMASK(1, 0));
577 }
578}
579
580/* Valid only for TX (IPA consumer) endpoints */
581#define IPA_REG_ENDP_INIT_SEQ_N_OFFSET(txep) \
582 (0x0000083c + 0x0070 * (txep))
583#define HPS_SEQ_TYPE_FMASK GENMASK(3, 0)
584#define DPS_SEQ_TYPE_FMASK GENMASK(7, 4)
585#define HPS_REP_SEQ_TYPE_FMASK GENMASK(11, 8)
586#define DPS_REP_SEQ_TYPE_FMASK GENMASK(15, 12)
583#define SEQ_TYPE_FMASK GENMASK(7, 0)
584#define SEQ_REP_TYPE_FMASK GENMASK(15, 8)
587
588/**
585
586/**
589 * enum ipa_seq_type - HPS and DPS sequencer type fields in ENDP_INIT_SEQ_N
590 * @IPA_SEQ_DMA_ONLY: only DMA is performed
591 * @IPA_SEQ_2ND_PKT_PROCESS_PASS_NO_DEC_UCP:
592 * second packet processing pass + no decipher + microcontroller
593 * @IPA_SEQ_PKT_PROCESS_NO_DEC_NO_UCP_DMAP:
594 * packet processing + no decipher + no uCP + HPS REP DMA parser
595 * @IPA_SEQ_INVALID: invalid sequencer type
587 * enum ipa_seq_type - HPS and DPS sequencer type
596 *
588 *
597 * The values defined here are broken into 4-bit nibbles that are written
598 * into fields of the ENDP_INIT_SEQ registers.
589 * The low-order byte of the sequencer type register defines the number of
590 * passes a packet takes through the IPA pipeline. The last pass through can
591 * optionally skip the microprocessor. Deciphering is optional for all types;
592 * if enabled, an additional mask (two bits) is added to the type value.
593 *
594 * Note: not all combinations of ipa_seq_type and ipa_seq_rep_type are
595 * supported (or meaningful).
599 */
596 */
597#define IPA_SEQ_DECIPHER 0x11
600enum ipa_seq_type {
598enum ipa_seq_type {
601 IPA_SEQ_DMA_ONLY = 0x0000,
602 IPA_SEQ_2ND_PKT_PROCESS_PASS_NO_DEC_UCP = 0x0004,
603 IPA_SEQ_PKT_PROCESS_NO_DEC_NO_UCP_DMAP = 0x0806,
604 IPA_SEQ_INVALID = 0xffff,
599 IPA_SEQ_DMA = 0x00,
600 IPA_SEQ_1_PASS = 0x02,
601 IPA_SEQ_2_PASS_SKIP_LAST_UC = 0x04,
602 IPA_SEQ_1_PASS_SKIP_LAST_UC = 0x06,
603 IPA_SEQ_2_PASS = 0x0a,
604 IPA_SEQ_3_PASS_SKIP_LAST_UC = 0x0c,
605 IPA_SEQ_INVALID = 0x0c,
605};
606
606};
607
608/**
609 * enum ipa_seq_rep_type - replicated packet sequencer type
610 *
611 * This goes in the second byte of the endpoint sequencer type register.
612 *
613 * Note: not all combinations of ipa_seq_type and ipa_seq_rep_type are
614 * supported (or meaningful).
615 */
616enum ipa_seq_rep_type {
617 IPA_SEQ_REP_DMA_PARSER = 0x08,
618 IPA_SEQ_REP_INVALID = 0x0c,
619};
620
607#define IPA_REG_ENDP_STATUS_N_OFFSET(ep) \
608 (0x00000840 + 0x0070 * (ep))
609#define STATUS_EN_FMASK GENMASK(0, 0)
610#define STATUS_ENDP_FMASK GENMASK(5, 1)
611/* The next field is not present for IPA v4.5 */
612#define STATUS_LOCATION_FMASK GENMASK(8, 8)
613/* The next field is not present for IPA v3.5.1 */
614#define STATUS_PKT_SUPPRESS_FMASK GENMASK(9, 9)

--- 104 unchanged lines hidden ---
621#define IPA_REG_ENDP_STATUS_N_OFFSET(ep) \
622 (0x00000840 + 0x0070 * (ep))
623#define STATUS_EN_FMASK GENMASK(0, 0)
624#define STATUS_ENDP_FMASK GENMASK(5, 1)
625/* The next field is not present for IPA v4.5 */
626#define STATUS_LOCATION_FMASK GENMASK(8, 8)
627/* The next field is not present for IPA v3.5.1 */
628#define STATUS_PKT_SUPPRESS_FMASK GENMASK(9, 9)

--- 104 unchanged lines hidden ---