uboot/arch/arm/mach-uniphier/soc-info.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * Copyright (C) 2017 Socionext Inc.
   4 *   Author: Masahiro Yamada <yamada.masahiro@socionext.com>
   5 */
   6
   7#ifndef __UNIPHIER_SOC_INFO_H__
   8#define __UNIPHIER_SOC_INFO_H__
   9
  10#include <linux/kernel.h>
  11#include <linux/stddef.h>
  12
  13#define UNIPHIER_LD4_ID         0x26
  14#define UNIPHIER_PRO4_ID        0x28
  15#define UNIPHIER_SLD8_ID        0x29
  16#define UNIPHIER_PRO5_ID        0x2a
  17#define UNIPHIER_PXS2_ID        0x2e
  18#define UNIPHIER_LD6B_ID        0x2f
  19#define UNIPHIER_LD11_ID        0x31
  20#define UNIPHIER_LD20_ID        0x32
  21#define UNIPHIER_PXS3_ID        0x35
  22
  23unsigned int uniphier_get_soc_id(void);
  24unsigned int uniphier_get_soc_model(void);
  25unsigned int uniphier_get_soc_revision(void);
  26
  27#define UNIPHIER_DEFINE_SOCDATA_FUNC(__func_name, __table)      \
  28static typeof(&__table[0]) __func_name(void)                    \
  29{                                                               \
  30        unsigned int soc_id;                                    \
  31        int i;                                                  \
  32                                                                \
  33        soc_id = uniphier_get_soc_id();                         \
  34        for (i = 0; i < ARRAY_SIZE(__table); i++) {             \
  35                if (__table[i].soc_id == soc_id)                \
  36                        return &__table[i];                     \
  37        }                                                       \
  38                                                                \
  39        return NULL;                                            \
  40}
  41
  42#endif /* __UNIPHIER_SOC_INFO_H__ */
  43