/*
* Copyright (C) 2017 Amlogic, Inc. All rights reserved.
* *
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.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* *
Description:
*/

/***************************************************************************
 Title:      pcie.h

 Author:     augustine.jiang

 Created:    20:07:53 15/03/2017

 Description:

 Note:

 History:

***************************************************************************/
#ifndef PCIE__H
#define PCIE__H

#define PF0_TYPE1_HDR_BaseAddress 0x0

#define PF0_PM_CAP_BaseAddress 0x40

#define PF0_PCIE_CAP_BaseAddress 0x70

#define PF0_AER_CAP_BaseAddress 0x100

#define PF0_MSI_CAP_BaseAddress 0x50

#define PF0_DMA_CAP_BaseAddress 0x380000

#define PF0_ATU_CAP_BaseAddress 0x300000

#define PF0_PORT_BaseAddress 0x700


#define CX_NFUNC    1

#define PCIE_A_BASE_ADDR   0xf9800000
#define PCIE_B_BASE_ADDR   0xfa000000

#define EP_A_BASE_ADDR     (PCIE_A_BASE_ADDR+0x400000)
#define EP_B_BASE_ADDR     (PCIE_B_BASE_ADDR+0x400000)

#define PCIE_TLP_OFF_ADDR  0x00400000

#define EP_A_IO_BASE_ADDR        (0x8000)
#define EP_A_IO_LIMIT            (EP_A_IO_BASE_ADDR+0xff)
#define EP_A_MEM_BASE_ADDR       (0x200000)
#define EP_A_MEM_LIMIT           (EP_A_MEM_BASE_ADDR+0x6fffffff)
#define EP_A_PREF_MEM_BASE_ADDR  (0x800000)
#define EP_A_PREF_MEM_LIMIT      (EP_A_PREF_MEM_BASE_ADDR+0x7fffff)

#define EP_B_IO_BASE_ADDR        (0x8000)
#define EP_B_IO_LIMIT            (EP_B_IO_BASE_ADDR+0xff)
#define EP_B_MEM_BASE_ADDR       (0x200000)
#define EP_B_MEM_LIMIT           (EP_B_MEM_BASE_ADDR+0x6fffffff)
#define EP_B_PREF_MEM_BASE_ADDR  (0x800000)
#define EP_B_PREF_MEM_LIMIT      (EP_B_PREF_MEM_BASE_ADDR+0x7fffff)

#define PCIE_A_IO_BASE_ADDR        EP_A_IO_BASE_ADDR
#define PCIE_A_IO_LIMIT            EP_A_IO_LIMIT
#define PCIE_A_MEM_BASE_ADDR       EP_A_MEM_BASE_ADDR
#define PCIE_A_MEM_LIMIT           EP_A_MEM_LIMIT
#define PCIE_A_PREF_MEM_BASE_ADDR  EP_A_PREF_MEM_BASE_ADDR
#define PCIE_A_PREF_MEM_LIMIT      EP_A_PREF_MEM_LIMIT

#define PCIE_B_IO_BASE_ADDR        EP_B_IO_BASE_ADDR
#define PCIE_B_IO_LIMIT            EP_B_IO_LIMIT
#define PCIE_B_MEM_BASE_ADDR       EP_B_MEM_BASE_ADDR
#define PCIE_B_MEM_LIMIT           EP_B_MEM_LIMIT
#define PCIE_B_PREF_MEM_BASE_ADDR  EP_B_PREF_MEM_BASE_ADDR
#define PCIE_B_PREF_MEM_LIMIT      EP_B_PREF_MEM_LIMIT

#define OB_REQ_ADDR_OFFSET          0x100000

#define PCIE_A_USER_CFG_BASE_ADDR      0xff646000
#define PCIE_B_USER_CFG_BASE_ADDR      0xff648000
#define PCIE_A_USER_STATUS_BASE_ADDR   0xff646000
#define PCIE_B_USER_STATUS_BASE_ADDR   0xff648000


#define PCIE_A_HDR_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_TYPE1_HDR_BaseAddress)
#define PCIE_A_PM_CAP_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_PM_CAP_BaseAddress)
#define PCIE_A_PCIE_CAP_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_PCIE_CAP_BaseAddress)
#define PCIE_A_AER_CAP_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_AER_CAP_BaseAddress)
#define PCIE_A_MSI_CAP_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_MSI_CAP_BaseAddress)
#define PCIE_A_DMA_CAP_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_DMA_CAP_BaseAddress)
#define PCIE_A_ATU_CAP_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_ATU_CAP_BaseAddress)
#define PCIE_A_PORT_LOGIC_BASE_ADDR (PCIE_A_BASE_ADDR + PF0_PORT_BaseAddress)

#define PCIE_B_HDR_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_TYPE1_HDR_BaseAddress)
#define PCIE_B_PM_CAP_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_PM_CAP_BaseAddress)
#define PCIE_B_PCIE_CAP_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_PCIE_CAP_BaseAddress)
#define PCIE_B_AER_CAP_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_AER_CAP_BaseAddress)
#define PCIE_B_MSI_CAP_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_MSI_CAP_BaseAddress)
#define PCIE_B_DMA_CAP_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_DMA_CAP_BaseAddress)
#define PCIE_B_ATU_CAP_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_ATU_CAP_BaseAddress)
#define PCIE_B_PORT_LOGIC_BASE_ADDR (PCIE_B_BASE_ADDR + PF0_PORT_BaseAddress)

#define EP_A_HDR_BASE_ADDR (EP_A_BASE_ADDR + PF0_TYPE1_HDR_BaseAddress)
#define EP_A_PM_CAP_BASE_ADDR (EP_A_BASE_ADDR + PF0_PM_CAP_BaseAddress)
#define EP_A_PCIE_CAP_BASE_ADDR (EP_A_BASE_ADDR + PF0_PCIE_CAP_BaseAddress)
#define EP_A_AER_CAP_BASE_ADDR (EP_A_BASE_ADDR + PF0_AER_CAP_BaseAddress)
#define EP_A_L1SS_CAP_BASE_ADDR (EP_A_BASE_ADDR + PF0_L1SUB_CAP_BaseAddress)
#define EP_A_MSI_CAP_BASE_ADDR (EP_A_BASE_ADDR + PF0_MSI_CAP_BaseAddress)
#define EP_A_DMA_CAP_BASE_ADDR (EP_A_BASE_ADDR + PF0_DMA_CAP_BaseAddress)
#define EP_A_ATU_CAP_BASE_ADDR (EP_A_BASE_ADDR + PF0_ATU_CAP_BaseAddress)
#define EP_A_PORT_LOGIC_BASE_ADDR (EP_A_BASE_ADDR + PF0_PORT_BaseAddress)

#define EP_B_HDR_BASE_ADDR (EP_B_BASE_ADDR + PF0_TYPE1_HDR_BaseAddress)
#define EP_B_PM_CAP_BASE_ADDR (EP_B_BASE_ADDR + PF0_PM_CAP_BaseAddress)
#define EP_B_PCIE_CAP_BASE_ADDR (EP_B_BASE_ADDR + PF0_PCIE_CAP_BaseAddress)
#define EP_B_AER_CAP_BASE_ADDR (EP_B_BASE_ADDR + PF0_AER_CAP_BaseAddress)
#define EP_B_L1SS_CAP_BASE_ADDR (EP_B_BASE_ADDR + PF0_L1SUB_CAP_BaseAddress)
#define EP_B_MSI_CAP_BASE_ADDR (EP_B_BASE_ADDR + PF0_MSI_CAP_BaseAddress)
#define EP_B_DMA_CAP_BASE_ADDR (EP_B_BASE_ADDR + PF0_DMA_CAP_BaseAddress)
#define EP_B_ATU_CAP_BASE_ADDR (EP_B_BASE_ADDR + PF0_ATU_CAP_BaseAddress)
#define EP_B_PORT_LOGIC_BASE_ADDR (EP_B_BASE_ADDR + PF0_PORT_BaseAddress)


#define    WAIT_LINKUP_TIMEOUT         500000

#define Wr_dword(addr, data) *(volatile uint32_t *)(u64)(addr)=(data)
#define Rd_dword(addr) *(volatile uint32_t *)(u64)(addr)

typedef enum {
    PCIE_A,
	PCIE_B
} e_pcieDev;

typedef enum {
  TYPE_MEM    = 0x00,
  TYPE_MEM_LK = 0x01,
  TYPE_IO     = 0x02,
  TYPE_CFG0   = 0x04,
  TYPE_CFG1   = 0x05,
  TYPE_MSG    = 0x10,
  TYPE_CPL    = 0x0a,
  TYPE_CPL_LK = 0x0b
} t_xcn_type;

enum pcie_data_rate {
	PCIE_GEN1,
	PCIE_GEN2,
	PCIE_GEN3,
	PCIE_GEN4
};

enum pcie_data_series {
	PCIE_RATEA_SERIES,
	PCIE_RATEB_SERIES
};

typedef struct pcie_user_cfg {
	volatile uint32_t   cfg0;
	volatile uint32_t   cfg1;
	volatile uint32_t   cfg2;
	volatile uint32_t   cfg3;
	volatile uint32_t   cfg4;
	volatile uint32_t   cfg5;
} t_pcie_user_cfg;


typedef struct pcie_user_status {
	volatile uint32_t   status0;
	volatile uint32_t   status1;
	volatile uint32_t   status2;
	volatile uint32_t   status3;
	volatile uint32_t   status4;
	volatile uint32_t   status5;
	volatile uint32_t   status6;
	volatile uint32_t   status7;
	volatile uint32_t   status8;
	volatile uint32_t   status9;
	volatile uint32_t   status10;
	volatile uint32_t   status11;
	volatile uint32_t   status12;
	volatile uint32_t   status13;
	volatile uint32_t   status14;
	volatile uint32_t   status15;
	volatile uint32_t   status16;
	volatile uint32_t   status17;
	volatile uint32_t   status18;
	volatile uint32_t   status19;
	volatile uint32_t   status20;
	volatile uint32_t   status21;
	volatile uint32_t   status22;
	volatile uint32_t   status23;
	volatile uint32_t   status24;
	volatile uint32_t   status25;
	volatile uint32_t   status26;
} t_pcie_user_status;

typedef struct pcie_cap_regs {
	volatile uint32_t   cap_id_pcie_next_cap_ptr_reg;
	volatile uint32_t   dev_cap_reg;
	volatile uint32_t   dev_ctrl_dev_stus_reg;
	volatile uint32_t   link_cap_reg;
	volatile uint32_t   link_ctrl_link_stus_reg;
	volatile uint32_t   slot_cap_reg;
	volatile uint32_t   slot_ctrl_slot_stus;
	volatile uint32_t   root_ctrl_root_cap_reg;
	volatile uint32_t   root_stus_reg;
	volatile uint32_t   dev_cap2_reg;
	volatile uint32_t   dev_ctrl2_dev_stus2;
	volatile uint32_t   link_cap2_reg;
	volatile uint32_t   link_ctrl2_link_stus2_reg;
} t_pcie_cap_regs;

typedef struct type1_hdr_regs {
	volatile uint32_t   dev_vend_reg;
	volatile uint32_t   stus_cmd_reg;
	volatile uint32_t   class_code_rev_id_reg;
	volatile uint32_t   bist_cache_size_reg;
	volatile uint32_t   base_addr0_reg;
	volatile uint32_t   base_addr1_reg;
	volatile uint32_t   sec_bus_reg;
	volatile uint32_t   io_limit_base_reg;
	volatile uint32_t   mem_limit_base_reg;
	volatile uint32_t   pref_mem_limit_base_reg;
	volatile uint32_t   pref_base_upper_reg;
	volatile uint32_t   pref_limit_upper_reg;
	volatile uint32_t   io_limit_base_upper_reg;
	volatile uint32_t   type1_cap_ptr_reg;
	volatile uint32_t   type1_exp_rom_base_reg;
	volatile uint32_t   bridge_ctrl_int_pin_int_line_reg;
} t_type1_hdr_regs;

#define   PORT_LOGIC_REGION_BASE                       0X700

typedef struct pl_region_regs {
	volatile uint32_t ack_latency_timer_off_reg;
	volatile uint32_t vendor_spec_dllp_off_reg;
	volatile uint32_t port_force_off_reg;
	volatile uint32_t ack_f_aspm_ctrl_off_reg;
	volatile uint32_t port_link_ctrl_off_reg;
	volatile uint32_t lane_skew_off_reg;
	volatile uint32_t timer_ctrl_max_func_num_off_reg;
	volatile uint32_t symbol_timer_filter_1_off_reg;
	volatile uint32_t filter_mask_2_off_reg;
	volatile uint32_t amba_mul_ob_decomp_np_sub_req_ctrl_off_reg;
	volatile uint32_t pl_debug0_off_reg;
	volatile uint32_t pl_debug1_off_reg;
	volatile uint32_t tx_p_fc_credit_status_off_reg;
	volatile uint32_t tx_np_fc_credit_status_off_reg;
	volatile uint32_t tx_cpl_fc_credit_status_off_reg;
	volatile uint32_t queue_status_off_reg;
	volatile uint32_t vc_tx_arbi_1_off_reg;
	volatile uint32_t vc_tx_arbi_2_off_reg;
	volatile uint32_t vc0_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc0_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc0_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc1_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc1_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc1_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc2_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc2_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc2_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc3_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc3_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc3_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc4_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc4_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc4_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc5_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc5_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc5_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc6_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc6_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc6_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc7_p_rx_q_ctrl_off_reg;
	volatile uint32_t vc7_np_rx_q_ctrl_off_reg;
	volatile uint32_t vc7_cpl_rx_q_ctrl_off_reg;
	volatile uint32_t vc0_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc0_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc0_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc1_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc1_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc1_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc2_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc2_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc2_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc3_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc3_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc3_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc4_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc4_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc4_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc5_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc5_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc5_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc6_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc6_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc6_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc7_p_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc7_np_buffer_depth_ctrl_off_reg;
	volatile uint32_t vc7_cpl_buffer_depth_ctrl_off_reg;
	volatile uint32_t res0;
	volatile uint32_t gen2_ctrl_off_reg;
	volatile uint32_t phy_status_off_reg;
	volatile uint32_t phy_control_off_reg;
	volatile uint32_t res1;
	volatile uint32_t trgt_map_ctrl_off_reg;
	volatile uint32_t msi_ctrl_addr_off_reg;
	volatile uint32_t msi_ctrl_upper_addr_off_reg;
	volatile uint32_t msi_ctrl_int_0_en_off_reg;
	volatile uint32_t msi_ctrl_int_0_mask_off_reg;
	volatile uint32_t msi_ctrl_int_0_status_off_reg;
	volatile uint32_t msi_ctrl_int_1_en_off_reg;
	volatile uint32_t msi_ctrl_int_1_mask_off_reg;
	volatile uint32_t msi_ctrl_int_1_status_off_reg;
	volatile uint32_t msi_ctrl_int_2_en_off_reg;
	volatile uint32_t msi_ctrl_int_2_mask_off_reg;
	volatile uint32_t msi_ctrl_int_2_status_off_reg;
	volatile uint32_t msi_ctrl_int_3_en_off_reg;
	volatile uint32_t msi_ctrl_int_3_mask_off_reg;
	volatile uint32_t msi_ctrl_int_3_status_off_reg;
	volatile uint32_t msi_ctrl_int_4_en_off_reg;
	volatile uint32_t msi_ctrl_int_4_mask_off_reg;
	volatile uint32_t msi_ctrl_int_4_status_off_reg;
	volatile uint32_t msi_ctrl_int_5_en_off_reg;
	volatile uint32_t msi_ctrl_int_5_mask_off_reg;
	volatile uint32_t msi_ctrl_int_5_status_off_reg;
	volatile uint32_t msi_ctrl_int_6_en_off_reg;
	volatile uint32_t msi_ctrl_int_6_mask_off_reg;
	volatile uint32_t msi_ctrl_int_6_status_off_reg;
	volatile uint32_t msi_ctrl_int_7_en_off_reg;
	volatile uint32_t msi_ctrl_int_7_mask_off_reg;
	volatile uint32_t msi_ctrl_int_7_status_off_reg;
	volatile uint32_t msi_gpio_io_off_reg;
	volatile uint32_t clock_gating_ctrl_off_reg;
	volatile uint32_t gen3_related_off_reg;
	volatile uint32_t gen3_eq_local_fs_lf_off_reg;
	volatile uint32_t gen3_eq_pset_coef_map_off_reg;
	volatile uint32_t gen3_eq_pset_index_off_reg;
	volatile uint32_t pf_hidden_off_reg;
	volatile uint32_t gen3_eq_coeff_legality_status_off_reg;
	volatile uint32_t gen3_eq_control_off_reg;
	volatile uint32_t gen3_eq_fb_mode_dir_change_off_reg;
	volatile uint32_t eq_status_off_reg;
	volatile uint32_t order_rule_ctrl_off_reg;
	volatile uint32_t pipe_loopback_control_off_reg;
	volatile uint32_t misc_control_1_off_reg;
	volatile uint32_t multi_lane_control_off_reg;
	volatile uint32_t phy_interop_ctrl_off_reg;
	volatile uint32_t trgt_cpl_lut_delete_entry_off_reg;
	volatile uint32_t link_flush_control_off_reg;
	volatile uint32_t amba_error_response_default_off_reg;
	volatile uint32_t amba_link_timeout_off_reg;
	volatile uint32_t amba_ordering_ctrl_off_reg;
	volatile uint32_t amba_ordrmgr_wdog_off_reg;
	volatile uint32_t coherency_control_1_off_reg;
	volatile uint32_t coherency_control_2_off_reg;
	volatile uint32_t coherency_control_3_off_reg;
	volatile uint32_t res111;
	volatile uint32_t axi_mstr_msg_addr_low_off_reg;
	volatile uint32_t axi_mstr_msg_addr_high_off_reg;
	volatile uint32_t pcie_version_number_off_reg;
	volatile uint32_t pcie_version_type_off_reg;
	volatile uint32_t iatu_viewport_off_reg;
	volatile uint32_t iatu_region_ctrl_1_viewport_off_reg;
	volatile uint32_t iatu_region_ctrl_2_viewport_off_reg;
	volatile uint32_t iatu_lwr_base_addr_viewport_off_reg;
	volatile uint32_t iatu_upper_base_addr_viewport_off_reg;
	volatile uint32_t iatu_limit_addr_viewport_off_reg;
	volatile uint32_t iatu_lwr_target_addr_viewport_off_reg;
	volatile uint32_t iatu_upper_target_addr_viewport_off_reg;
	volatile uint32_t iatu_region_ctrl_3_viewport_off_reg;
	volatile uint32_t iatu_uppr_limit_addr_viewport_off_reg;
	volatile uint32_t res2[2];
	volatile uint32_t interface_timer_control_off_reg;
	volatile uint32_t interface_timer_target_off_reg;
	volatile uint32_t interface_timer_status_off_reg;
	volatile uint32_t res3;
	volatile uint32_t msix_address_match_low_off_reg;
	volatile uint32_t msix_address_match_high_off_reg;
	volatile uint32_t msix_doorbell_off_reg;
	volatile uint32_t msix_ram_ctrl_off_reg;
	volatile uint32_t res4[8];
	volatile uint32_t dma_ctrl_data_arb_prior_viewport_off_reg;
	volatile uint32_t res5;
	volatile uint32_t dma_ctrl_viewport_off_reg;
	volatile uint32_t dma_write_engine_en_viewport_off_reg;
	volatile uint32_t dma_write_doorbell_viewport_off_reg;
	volatile uint32_t res6;
	volatile uint32_t dma_write_channel_arb_weight_low_viewport_off_reg;
	volatile uint32_t dma_write_channel_arb_weight_high_viewport_off_reg;
	volatile uint32_t res7[3];
	volatile uint32_t dma_read_engine_en_viewport_off_reg;
	volatile uint32_t dma_read_doorbell_viewport_off_reg;
	volatile uint32_t res8;
	volatile uint32_t dma_read_channel_arb_weight_low_viewport_off_reg;
	volatile uint32_t dma_read_channel_arb_weight_high_viewport_off_reg;
	volatile uint32_t res9[3];
	volatile uint32_t dma_write_int_status_viewport_off_reg;
	volatile uint32_t res10;
	volatile uint32_t dma_write_int_mask_viewport_off_reg;
	volatile uint32_t dma_write_int_clear_viewport_off_reg;
	volatile uint32_t dma_write_err_status_viewport_off_reg;
	volatile uint32_t dma_write_done_imwr_low_viewport_off_reg;
	volatile uint32_t dma_write_done_imwr_high_viewport_off_reg;
	volatile uint32_t dma_write_abort_imwr_low_viewport_off_reg;
	volatile uint32_t dma_write_abort_imwr_high_viewport_off_reg;
	volatile uint32_t dma_write_ch01_imwr_data_viewport_off_reg;
	volatile uint32_t dma_write_ch23_imwr_data_viewport_off_reg;
	volatile uint32_t dma_write_ch45_imwr_data_viewport_off_reg;
	volatile uint32_t dma_write_ch67_imwr_data_viewport_off_reg;
	volatile uint32_t res101[4];
	volatile uint32_t dma_write_linked_list_err_en_viewport_off_reg;
	volatile uint32_t res11[3];
	volatile uint32_t dma_read_int_status_viewport_off_reg;
	volatile uint32_t res12;
	volatile uint32_t dma_read_int_mask_viewport_off_reg;
	volatile uint32_t dma_read_int_clear_viewport_off_reg;
	volatile uint32_t res13;
	volatile uint32_t dma_read_err_status_low_viewport_off_reg;
	volatile uint32_t dma_read_err_status_high_viewport_off_reg;
	volatile uint32_t res14[2];
	volatile uint32_t dma_read_linked_list_err_en_viewport_off_reg;
	volatile uint32_t res15;
	volatile uint32_t dma_read_done_imwr_low_viewport_off_reg;
	volatile uint32_t dma_read_done_imwr_high_viewport_off_reg;
	volatile uint32_t dma_read_abort_imwr_low_viewport_off_reg;
	volatile uint32_t dma_read_abort_imwr_high_viewport_off_reg;
	volatile uint32_t dma_read_ch01_imwr_data_viewport_off_reg;
	volatile uint32_t dma_read_ch23_imwr_data_viewport_off_reg;
	volatile uint32_t dma_read_ch45_imwr_data_viewport_off_reg;
	volatile uint32_t dma_read_ch67_imwr_data_viewport_off_reg;
	volatile uint32_t res16[4];
	volatile uint32_t dma_viewport_sel_off_reg;
	volatile uint32_t dma_ch_control1_viewport_off_reg;
	volatile uint32_t dma_ch_control2_viewport_off_reg;
	volatile uint32_t dma_transfer_size_viewport_off_reg;
	volatile uint32_t dma_sar_low_viewport_off_reg;
	volatile uint32_t dma_sar_high_viewport_off_reg;
	volatile uint32_t dma_dar_low_viewport_off_reg;
	volatile uint32_t dma_dar_high_viewport_off_reg;
	volatile uint32_t dma_llp_low_viewport_off_reg;
	volatile uint32_t dma_llp_high_viewport_off_reg;
	volatile uint32_t res17[35];
	volatile uint32_t pl_chk_reg_control_status_off_reg;
	volatile uint32_t pl_chk_reg_start_end_off_reg;
	volatile uint32_t pl_chk_reg_err_addr_off_reg;
	volatile uint32_t pl_chk_reg_err_pf_vf_off_reg;
	volatile uint32_t pl_ltr_latency_off_reg;
	volatile uint32_t res18[3];
	volatile uint32_t aux_clk_freq_off_reg;
	volatile uint32_t l1_substates_off_reg;
	volatile uint32_t res19[2];
	volatile uint32_t dynamic_reconfig_ctrl_off_reg;
	volatile uint32_t pl_mpcie_ctrl_off_reg;
	volatile uint32_t pl_mpcie_lrc_rrc_init_sts_off_reg;
	volatile uint32_t pl_mpcie_link_sts_off_reg;
	volatile uint32_t pl_mpcie_lane_sts_off_reg;
	volatile uint32_t res20[3];
	volatile uint32_t phy_viewport_ctlsts_off_reg;
	volatile uint32_t phy_viewport_data_off_reg;
	volatile uint32_t res21[2];
	volatile uint32_t gen4_lane_margining_1_off_reg;
	volatile uint32_t gen4_lane_margining_2_off_reg;
	volatile uint32_t res22[30];
	volatile uint32_t rx_serialization_q_ctrl_off_reg;
} t_pl_region_regs;

union phy_r0 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned phy_test_powerdown:1;
		unsigned phy_ref_use_pad:1;
		unsigned pipe_port_sel:2;
		unsigned pcs_common_clocks:1;
		unsigned reserved:27;
	} b;
};

union phy_r1 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned phy_tx1_term_offset:5;
		unsigned phy_tx0_term_offset:5;
		unsigned phy_rx1_eq:3;
		unsigned phy_rx0_eq:3;
		unsigned phy_los_level:5;
		unsigned phy_los_bias:3;
		unsigned phy_ref_clkdiv2:1;
		unsigned phy_mpll_multiplier:7;
	} b;
};

union phy_r2 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned pcs_tx_deemph_gen2_6db:6;
		unsigned pcs_tx_deemph_gen2_3p5db:6;
		unsigned pcs_tx_deemph_gen1:6;
		unsigned phy_tx_vboost_lvl:3;
		unsigned reserved:11;
	} b;
};

union phy_r3 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned pcs_tx_swing_low:7;
		unsigned pcs_tx_swing_full:7;
		unsigned reserved:18;
	} b;
};

union phy_r4 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned phy_cr_write:1;
		unsigned phy_cr_read:1;
		unsigned phy_cr_data_in:16;
		unsigned phy_cr_cap_data:1;
		unsigned phy_cr_cap_addr:1;
		unsigned reserved:12;
	} b;
};

union phy_r5 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned phy_cr_data_out:16;
		unsigned phy_cr_ack:1;
		unsigned phy_bs_out:1;
		unsigned reserved:14;
	} b;
};

union phy_r6 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned phy_bs_update_dr:1;
		unsigned phy_bs_shift_dr:1;
		unsigned phy_bs_preload:1;
		unsigned phy_bs_invert:1;
		unsigned phy_bs_init:1;
		unsigned phy_bs_in:1;
		unsigned phy_bs_highz:1;
		unsigned phy_bs_extest_ac:1;
		unsigned phy_bs_extest:1;
		unsigned phy_bs_clk:1;
		unsigned phy_bs_clamp:1;
		unsigned phy_bs_capture_dr:1;
		unsigned phy_acjt_level:5;
		unsigned reserved:15;
	} b;
};

struct pcie_phy_aml_regs {
	volatile uint32_t phy_r0;
	volatile uint32_t phy_r1;
	volatile uint32_t phy_r2;
	volatile uint32_t phy_r3;
	volatile uint32_t phy_r4;
	volatile uint32_t phy_r5;
};


union hc_r0 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned app_req_flush:1;
		unsigned app_xfer_pending:1;
		unsigned app_req_exit_l1:1;
		unsigned app_ready_entr_l23:1;
		unsigned app_req_entr_l1:1;
		unsigned app_init_rst:1;
		unsigned app_clk_req_n:1;
		unsigned app_ltssm_enable:1;
		unsigned sys_aux_pwr_det:1;
		unsigned restore_state_ack:1;
		unsigned save_state_ack:1;
		unsigned app_l1_pwr_off_en:1;
		unsigned apps_pm_xmt_turnoff:1;
		unsigned app_unlock_msg:1;
		unsigned sys_eml_interlock_engaged:1;
		unsigned sys_cmd_cpled_int:1;
		unsigned sys_pre_det_chged:1;
		unsigned sys_mrl_sensor_chged:1;
		unsigned sys_pwr_fault_det:1;
		unsigned sys_mrl_sensor_state:1;
		unsigned sys_pre_det_state:1;
		unsigned sys_atten_button_pressed:1;
		unsigned slv_armisc_info_atu_bypass:1;
		unsigned slv_awmisc_info_atu_bypass:1;
		unsigned reserved:8;
	} b;
};

union hc_r1 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_atten_button_pressed_en:1;
		unsigned cfg_pwr_fault_det_en:1;
		unsigned cfg_mrl_sensor_chged_en:1;
		unsigned cfg_pre_det_chged_en:1;
		unsigned cfg_hp_int_en:1;
		unsigned cfg_cmd_cpled_int_en:1;
		unsigned cfg_dll_state_chged_en:1;
		unsigned cfg_hp_slot_ctrl_access:1;
		unsigned flush_done:1;
		unsigned wake:1;
		unsigned reserved:22;
	} b;
};

union hc_r2 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned rtlh_rfc_upd:1;
		unsigned cfg_eml_control:1;
		unsigned cfg_pcie_cap_int_msg_num:5;
		unsigned cfg_crs_sw_vis_en:1;
		unsigned cfg_pme_msi:1;
		unsigned cfg_pme_int:1;
		unsigned cfg_aer_int_msg_num:5;
		unsigned cfg_aer_rc_err_msi:1;
		unsigned cfg_aer_rc_err_int:1;
		unsigned cfg_sys_err_rc:1;
		unsigned cfg_pwr_ctrler_ctrl:1;
		unsigned cfg_atten_ind:1;
		unsigned cfg_pwr_ind:1;
		unsigned reserved:11;
	} b;
};

union hc_r3 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned rtlh_rfc_data:32;
	} b;
};

union hc_r4 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_bar0_start_low:32;
	} b;
};

union hc_r5 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_bar0_start_high:32;
	} b;
};

union hc_r6 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_bar0_limit_low:32;
	} b;
};

union hc_r7 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_bar0_limit_high:32;
	} b;
};

union hc_r8 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_bar1_start:32;
	} b;
};

union hc_r9 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_bar1_limit:32;
	} b;
};

union hc_r10 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_exp_rom_start:32;
	} b;
};

union hc_r11 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_exp_rom_limit:32;
	} b;
};

union hc_r12 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned radm_xfer_pending:1;
		unsigned edma_xfer_pending:1;
		unsigned brdg_dbi_xfer_pending:1;
		unsigned brdg_slv_xfer_pending:1;
		unsigned link_req_rst_not:1;
		unsigned smlh_req_rst_not:1;
		unsigned smlh_link_up:1;
		unsigned pm_curnt_state:3;
		unsigned smlh_ltssm_state:6;
		unsigned rdlh_link_up:1;
		unsigned reserved:15;
	} b;
};

union hc_r13 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_pbus_dev_num:5;
		unsigned cfg_pbus_num:8;
		unsigned pm_status:1;
		unsigned cfg_l1sub_en:1;
		unsigned pm_linkst_in_l1sub:1;
		unsigned pm_linkst_l2_exit:1;
		unsigned pm_linkst_in_l2:1;
		unsigned pm_linkst_in_l1:1;
		unsigned pm_linkst_in_l0s:1;
		unsigned pm_pme_en:1;
		unsigned aux_pm_en:1;
		unsigned pm_dstate:3;
		unsigned reserved:7;
	} b;
};


union hc_r14 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_max_rd_req_size:3;
		unsigned cfg_mem_space_en:1;
		unsigned cfg_rcb:1;
		unsigned cfg_max_payload_size:3;
		unsigned cfg_2nd_reset:1;
		unsigned cfg_subbus_num:8;
		unsigned cfg_2ndbus_num:8;
		unsigned cfg_bus_master_en:1;
		unsigned pm_xtlh_block_tlp:1;
		unsigned reserved:5;
	} b;
};

union hc_r15 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned trgt_lookup_empty:1;
		unsigned trgt_lookup_id:8;
		unsigned trgt_timeout_lookup_id:8;
		unsigned trgt_timeout_cpl_len:12;
		unsigned trgt_timeout_cpl_attr:2;
		unsigned trgt_timeout_cpl_tc:1;
	} b;
};

union hc_r16 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cfg_relax_order_en:1;
		unsigned cfg_no_snoop_en:1;
		unsigned cfg_int_disable:1;
		unsigned cfg_send_f_err:1;
		unsigned cfg_send_nf_err:1;
		unsigned cfg_send_cor_err:1;
		unsigned radm_timeout_cpl_tag:8;
		unsigned radm_timeout_cpl_len:12;
		unsigned radm_timeout_cpl_attr:2;
		unsigned radm_timeout_cpl_tc:3;
		unsigned radm_timeout_func_num:1;
	} b;
};

union hc_r17 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned phy_mac_rxdatavalid:1;
		unsigned mac_phy_txswing:1;
		unsigned mac_phy_txmargin:3;
		unsigned mac_phy_txdeemph:2;
		unsigned mac_phy_rate:1;
		unsigned mac_phy_rxstandby:1;
		unsigned mac_phy_pclk_rate:3;
		unsigned mac_phy_width:2;
		unsigned mac_phy_rxpolarity:1;
		unsigned mac_phy_txcompliance:1;
		unsigned mac_phy_txelecidle:1;
		unsigned mac_phy_txdetectrx_loopback:1;
		unsigned mac_phy_txdatavalid:1;
		unsigned mac_phy_elasticbuffermode:1;
		unsigned mac_phy_txdatak:2;
		unsigned phy_mac_rxstandbystatus:1;
		unsigned phy_mac_rxstatus:3;
		unsigned phy_mac_rxvalid:1;
		unsigned phy_mac_rxdatak:2;
		unsigned phy_mac_phystatus:1;
		unsigned phy_mac_rxelecidle:1;
		unsigned reserved:1;
	} b;
};

union hc_r18 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned msi_ctrl_io:32;
	} b;
};

union hc_r19 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned msi_ctrl_int_vec:8;
		unsigned reserved:24;
	} b;
};

union hc_r20 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cxpl_debug_info_low:32;
	} b;
};

union hc_r21 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cxpl_debug_info_high:32;
	} b;
};

union hc_r22 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned cxpl_debug_info_ei:16;
		unsigned reserved:16;
	} b;
};

union hc_r23 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned radm_vendor_msg:1;
		unsigned reserved:31;
	} b;
};

union hc_r24 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned radm_msg_payload_low:32;
	} b;
};

union hc_r25 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned radm_msg_payload_high:32;
	} b;
};

union hc_r26 {
	/** raw register data */
	uint32_t d32;
	/** register bits */
	struct {
		unsigned radm_msg_req_id:16;
		unsigned reserved:16;
	} b;
};

struct pcie_hc_aml_regs {
	volatile uint32_t hc_r0;
	volatile uint32_t hc_r1;
	volatile uint32_t hc_r2;
	volatile uint32_t hc_r3;
	volatile uint32_t hc_r4;
	volatile uint32_t hc_r5;
	volatile uint32_t hc_r6;
	volatile uint32_t hc_r7;
	volatile uint32_t hc_r8;
	volatile uint32_t hc_r9;
	volatile uint32_t hc_r10;
	volatile uint32_t hc_r11;
	volatile uint32_t hc_r12;
	volatile uint32_t hc_r13;
	volatile uint32_t hc_r14;
	volatile uint32_t hc_r15;
	volatile uint32_t hc_r16;
	volatile uint32_t hc_r17;
	volatile uint32_t hc_r18;
	volatile uint32_t hc_r19;
	volatile uint32_t hc_r20;
	volatile uint32_t hc_r21;
	volatile uint32_t hc_r22;
	volatile uint32_t hc_r23;
	volatile uint32_t hc_r24;
	volatile uint32_t hc_r25;
	volatile uint32_t hc_r26;
};

u8	iatu_unroll_enabled;
int pcie_type = 0;

#define PCI_ACCESS_READ  0
#define PCI_ACCESS_WRITE 1

#define AMLOGIC_PCIE_A_DBI_ADDR	PCIE_A_BASE_ADDR
#define AMLOGIC_PCIE_B_DBI_ADDR	PCIE_B_BASE_ADDR

/* iATU registers */
#define PCIE_ATU_VIEWPORT		0x900
#define PCIE_ATU_REGION_INBOUND		(0x1 << 31)
#define PCIE_ATU_REGION_OUTBOUND	(0x0 << 31)
#define PCIE_ATU_REGION_INDEX1		(0x1 << 0)
#define PCIE_ATU_REGION_INDEX0		(0x0 << 0)
#define PCIE_ATU_CR1			0x904
#define PCIE_ATU_TYPE_MEM		(0x0 << 0)
#define PCIE_ATU_TYPE_IO		(0x2 << 0)
#define PCIE_ATU_TYPE_CFG0		(0x4 << 0)
#define PCIE_ATU_TYPE_CFG1		(0x5 << 0)
#define PCIE_ATU_CR2			0x908
#define PCIE_ATU_ENABLE			(0x1 << 31)
#define PCIE_ATU_BAR_MODE_ENABLE	(0x1 << 30)
#define PCIE_ATU_LOWER_BASE		0x90C
#define PCIE_ATU_UPPER_BASE		0x910
#define PCIE_ATU_LIMIT			0x914
#define PCIE_ATU_LOWER_TARGET		0x918
#define PCIE_ATU_BUS(x)			(((x) & 0xff) << 24)
#define PCIE_ATU_DEV(x)			(((x) & 0x1f) << 19)
#define PCIE_ATU_FUNC(x)		(((x) & 0x7) << 16)
#define PCIE_ATU_UPPER_TARGET		0x91C

#define PCIE_GET_ATU_OUTB_UNR_REG_OFFSET(region)  ((0x3 << 20) | (region << 9))
/*
 * iATU Unroll-specific register definitions
 * From 4.80 core version the address translation will be made by unroll
 */
#define PCIE_ATU_UNR_REGION_CTRL1	0x00
#define PCIE_ATU_UNR_REGION_CTRL2	0x04
#define PCIE_ATU_UNR_LOWER_BASE		0x08
#define PCIE_ATU_UNR_UPPER_BASE		0x0C
#define PCIE_ATU_UNR_LIMIT		0x10
#define PCIE_ATU_UNR_LOWER_TARGET	0x14
#define PCIE_ATU_UNR_UPPER_TARGET	0x18

#define LINK_WAIT_MAX_IATU_RETRIES	5

#define P_RESET0_LEVEL    (volatile uint32_t *)0xffd01080
#define PCIE_PHY_BASE    (volatile uint32_t *)0xff644000
#define PCIE_CTRL_0		(volatile uint32_t *)0xff63c0d8
#define PCIE_CTRL_1		(volatile uint32_t *)0xff63c0dc
#define PCIE_CTRL_2		(volatile uint32_t *)0xff63c0e0
#define PCIE_CTRL_3		(volatile uint32_t *)0xff63c0e4
#define PCIE_CTRL_4		(volatile uint32_t *)0xff63c0e8
#define PCIE_CTRL_5		(volatile uint32_t *)0xff63c0ec
#define PCIE_CTRL_6		(volatile uint32_t *)0xff63c0f0
#define MIPI_CTRL		(volatile uint32_t *)0xff63c000
#define CLK81_HIGH		(volatile uint32_t *)0xff63c144
#define CLK81_LOW		(volatile uint32_t *)0xff63c140

#endif
