| /* |
| * Copyright (c) 2015-2017, 2019 The Linux Foundation. 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 version 2 and |
| * only version 2 as published by the Free Software Foundation. |
| |
| * 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. |
| */ |
| |
| #ifndef ___QCA_COMMON_H_ |
| #define ___QCA_COMMON_H_ |
| #include <asm/u-boot.h> |
| #include <asm/arch-qca-common/smem.h> |
| #include <asm/arch-qca-common/gpio.h> |
| |
| #ifdef CONFIG_ARCH_IPQ5018 |
| #include <asm/arch-ipq5018/clk.h> |
| #endif |
| |
| #ifdef CONFIG_ARCH_IPQ6018 |
| #include <asm/arch-ipq6018/clk.h> |
| #endif |
| |
| #ifdef CONFIG_ARCH_IPQ807x |
| #include <asm/arch-ipq807x/clk.h> |
| #endif |
| |
| #ifdef CONFIG_ARCH_IPQ40xx |
| #include <asm/arch-ipq40xx/clk.h> |
| #endif |
| |
| |
| #ifdef CONFIG_ARCH_IPQ806x |
| #include <asm/arch-ipq806x/clk.h> |
| #endif |
| |
| #define XMK_STR(x)#x |
| #define MK_STR(x)XMK_STR(x) |
| |
| /* Crashdump levels */ |
| enum { |
| FULL_DUMP, |
| MINIMAL_DUMP |
| }; |
| |
| struct ipq_i2c_platdata { |
| int type; |
| }; |
| |
| typedef struct { |
| uint base; |
| uint clk_mode; |
| struct mmc *mmc; |
| int dev_num; |
| } qca_mmc; |
| |
| /* Reserved-memory node names and register value*/ |
| typedef struct { |
| const char *nodename; |
| u32 val[2]; |
| } add_node_t; |
| |
| typedef struct qca_gpio_config gpio_func_data_t; |
| |
| typedef struct { |
| gpio_func_data_t *gpio; |
| unsigned int gpio_count; |
| }spi_cfg_t; |
| |
| typedef struct { |
| gpio_func_data_t *gpio; |
| unsigned int gpio_count; |
| }qpic_nand_cfg_t; |
| |
| typedef struct { |
| spi_cfg_t spi_nor_cfg; |
| qpic_nand_cfg_t qpic_nand_cfg; |
| }board_param_t; |
| |
| int qca_mmc_init(bd_t *, qca_mmc *); |
| |
| #if defined(CONFIG_QCA_MMC) && !defined(CONFIG_SDHCI_SUPPORT) |
| int board_mmc_env_init(qca_mmc mmc_host); |
| #endif |
| |
| int ipq_board_usb_init(void); |
| int spi_nand_init(void); |
| void board_mmc_deinit(void); |
| void board_pci_deinit(void); |
| void set_flash_secondary_type(qca_smem_flash_info_t *); |
| void dump_func(unsigned int dump_level); |
| int do_dumpqca_flash_data(const char *); |
| int do_dumpqca_usb_data(unsigned int dump_level); |
| int apps_iscrashed(void); |
| int set_uuid_bootargs(char *boot_args, char *part_name, int buflen, bool gpt_flag); |
| |
| int get_eth_mac_address(uchar *enetaddr, uint no_of_macs); |
| void set_ethmac_addr(void); |
| void aquantia_phy_reset_init_done(void); |
| void aquantia_phy_reset_init(void); |
| int bring_sec_core_up(unsigned int cpuid, unsigned int entry, unsigned int arg); |
| int is_secondary_core_off(unsigned int cpuid); |
| int smem_read_cpu_count(void); |
| int get_soc_hw_version(void); |
| |
| struct dumpinfo_t{ |
| char name[16]; /* use only file name in 8.3 format */ |
| uint32_t start; |
| uint32_t size; |
| int is_aligned_access; /* non zero represent 4 byte access */ |
| uint32_t is_redirected; /* If this flag is set, 'start' is considered a ptr |
| * to address to be dumped |
| */ |
| uint32_t offset; /* offset to be added to start address */ |
| uint32_t dump_level; |
| uint32_t to_compress; /* non-zero represent for compressed dump*/ |
| }; |
| extern struct dumpinfo_t dumpinfo_n[]; |
| extern int dump_entries_n; |
| |
| extern struct dumpinfo_t dumpinfo_s[]; |
| extern int dump_entries_s; |
| |
| #define MMC_IDENTIFY_MODE 0 |
| #define MMC_DATA_TRANSFER_MODE 1 |
| #define MMC_DATA_TRANSFER_SDHCI_MODE 2 |
| #define MMC_MODE_HC 0x800 |
| |
| #define SPI_DEFAULT_ADDR_LEN 3 |
| #define SPI_MAX_ADDR_LEN 4 |
| |
| #define MAX_BOOT_ARGS_SIZE 64 |
| |
| #define REBOOT_REASON 0x8600024 |
| #define REBOOT_REASON_AUX (REBOOT_REASON + 0x100) |
| |
| enum reboot_reason_state { |
| store, |
| restore, |
| }; |
| #endif /* __QCA_COMMON_H_ */ |