1 # SPDX-FileCopyrightText: 2021 Melissa LeBlanc-Williams for Adafruit Industries
 
   3 # SPDX-License-Identifier: MIT
 
   4 """Spacemit K1 Pin Names"""
 
   5 from adafruit_blinka.agnostic import detector
 
   6 from adafruit_blinka.microcontroller.alias import get_pwm_chipid
 
   7 from adafruit_blinka.microcontroller.generic_linux.libgpiod_pin import Pin
 
  11 GPIO_0 = Pin((__chip_num, 0))
 
  12 GPIO_1 = Pin((__chip_num, 1))
 
  13 GPIO_2 = Pin((__chip_num, 2))
 
  14 GPIO_3 = Pin((__chip_num, 3))
 
  15 GPIO_4 = Pin((__chip_num, 4))
 
  16 GPIO_5 = Pin((__chip_num, 5))
 
  17 GPIO_6 = Pin((__chip_num, 6))
 
  18 GPIO_7 = Pin((__chip_num, 7))
 
  19 GPIO_8 = Pin((__chip_num, 8))
 
  20 GPIO_9 = Pin((__chip_num, 9))
 
  21 GPIO_10 = Pin((__chip_num, 10))
 
  22 GPIO_11 = Pin((__chip_num, 11))
 
  23 GPIO_12 = Pin((__chip_num, 12))
 
  24 GPIO_13 = Pin((__chip_num, 13))
 
  25 GPIO_14 = Pin((__chip_num, 14))
 
  26 GPIO_15 = Pin((__chip_num, 15))
 
  27 GPIO_16 = Pin((__chip_num, 16))
 
  28 GPIO_17 = Pin((__chip_num, 17))
 
  29 GPIO_18 = Pin((__chip_num, 18))
 
  30 GPIO_19 = Pin((__chip_num, 19))
 
  31 GPIO_20 = Pin((__chip_num, 20))
 
  32 GPIO_21 = Pin((__chip_num, 21))
 
  33 GPIO_22 = Pin((__chip_num, 22))
 
  34 GPIO_23 = Pin((__chip_num, 23))
 
  35 GPIO_24 = Pin((__chip_num, 24))
 
  36 GPIO_25 = Pin((__chip_num, 25))
 
  37 GPIO_26 = Pin((__chip_num, 26))
 
  38 GPIO_27 = Pin((__chip_num, 27))
 
  39 GPIO_28 = Pin((__chip_num, 28))
 
  40 GPIO_29 = Pin((__chip_num, 29))
 
  41 GPIO_30 = Pin((__chip_num, 30))
 
  42 GPIO_31 = Pin((__chip_num, 31))
 
  43 GPIO_32 = Pin((__chip_num, 32))
 
  44 GPIO_33 = Pin((__chip_num, 33))
 
  45 GPIO_34 = Pin((__chip_num, 34))
 
  46 GPIO_35 = Pin((__chip_num, 35))
 
  47 GPIO_36 = Pin((__chip_num, 36))
 
  48 GPIO_37 = Pin((__chip_num, 37))
 
  49 GPIO_38 = Pin((__chip_num, 38))
 
  50 GPIO_39 = Pin((__chip_num, 39))
 
  51 GPIO_40 = Pin((__chip_num, 40))
 
  52 GPIO_41 = Pin((__chip_num, 41))
 
  53 GPIO_42 = Pin((__chip_num, 42))
 
  54 GPIO_43 = Pin((__chip_num, 43))
 
  55 GPIO_44 = Pin((__chip_num, 44))
 
  56 GPIO_45 = Pin((__chip_num, 45))
 
  57 GPIO_46 = Pin((__chip_num, 46))
 
  58 GPIO_47 = Pin((__chip_num, 47))
 
  59 GPIO_48 = Pin((__chip_num, 48))
 
  60 GPIO_49 = Pin((__chip_num, 49))
 
  61 GPIO_50 = Pin((__chip_num, 50))
 
  62 GPIO_51 = Pin((__chip_num, 51))
 
  63 GPIO_52 = Pin((__chip_num, 52))
 
  64 GPIO_53 = Pin((__chip_num, 53))
 
  65 GPIO_54 = Pin((__chip_num, 54))
 
  66 GPIO_55 = Pin((__chip_num, 55))
 
  67 GPIO_56 = Pin((__chip_num, 56))
 
  68 GPIO_57 = Pin((__chip_num, 57))
 
  69 GPIO_58 = Pin((__chip_num, 58))
 
  70 GPIO_59 = Pin((__chip_num, 59))
 
  71 GPIO_60 = Pin((__chip_num, 60))
 
  72 GPIO_61 = Pin((__chip_num, 61))
 
  73 GPIO_62 = Pin((__chip_num, 62))
 
  74 GPIO_63 = Pin((__chip_num, 63))
 
  75 GPIO_64 = Pin((__chip_num, 64))
 
  76 GPIO_65 = Pin((__chip_num, 65))
 
  77 GPIO_66 = Pin((__chip_num, 66))
 
  78 GPIO_67 = Pin((__chip_num, 67))
 
  79 GPIO_68 = Pin((__chip_num, 68))
 
  80 GPIO_69 = Pin((__chip_num, 69))
 
  81 GPIO_70 = Pin((__chip_num, 70))
 
  82 GPIO_71 = Pin((__chip_num, 71))
 
  83 GPIO_72 = Pin((__chip_num, 72))
 
  84 GPIO_73 = Pin((__chip_num, 73))
 
  85 GPIO_74 = Pin((__chip_num, 74))
 
  86 GPIO_75 = Pin((__chip_num, 75))
 
  87 GPIO_76 = Pin((__chip_num, 76))
 
  88 GPIO_77 = Pin((__chip_num, 77))
 
  89 GPIO_78 = Pin((__chip_num, 78))
 
  90 GPIO_79 = Pin((__chip_num, 79))
 
  91 GPIO_80 = Pin((__chip_num, 80))
 
  92 GPIO_81 = Pin((__chip_num, 81))
 
  93 GPIO_82 = Pin((__chip_num, 82))
 
  94 GPIO_83 = Pin((__chip_num, 83))
 
  95 GPIO_84 = Pin((__chip_num, 84))
 
  96 GPIO_85 = Pin((__chip_num, 85))
 
  97 GPIO_86 = Pin((__chip_num, 86))
 
  98 GPIO_87 = Pin((__chip_num, 87))
 
  99 GPIO_88 = Pin((__chip_num, 88))
 
 100 GPIO_89 = Pin((__chip_num, 89))
 
 101 GPIO_90 = Pin((__chip_num, 90))
 
 102 GPIO_91 = Pin((__chip_num, 91))
 
 103 GPIO_92 = Pin((__chip_num, 92))
 
 104 GPIO_93 = Pin((__chip_num, 93))
 
 105 GPIO_94 = Pin((__chip_num, 94))
 
 106 GPIO_95 = Pin((__chip_num, 95))
 
 107 GPIO_96 = Pin((__chip_num, 96))
 
 108 GPIO_97 = Pin((__chip_num, 97))
 
 109 GPIO_98 = Pin((__chip_num, 98))
 
 110 GPIO_99 = Pin((__chip_num, 99))
 
 111 GPIO_100 = Pin((__chip_num, 100))
 
 112 GPIO_101 = Pin((__chip_num, 101))
 
 113 GPIO_102 = Pin((__chip_num, 102))
 
 114 GPIO_103 = Pin((__chip_num, 103))
 
 115 GPIO_104 = Pin((__chip_num, 104))
 
 116 GPIO_105 = Pin((__chip_num, 105))
 
 117 GPIO_106 = Pin((__chip_num, 106))
 
 118 GPIO_107 = Pin((__chip_num, 107))
 
 119 GPIO_108 = Pin((__chip_num, 108))
 
 120 GPIO_109 = Pin((__chip_num, 109))
 
 121 GPIO_110 = Pin((__chip_num, 110))
 
 122 GPIO_111 = Pin((__chip_num, 111))
 
 123 GPIO_112 = Pin((__chip_num, 112))
 
 124 GPIO_113 = Pin((__chip_num, 113))
 
 125 GPIO_114 = Pin((__chip_num, 114))
 
 126 GPIO_115 = Pin((__chip_num, 115))
 
 127 GPIO_116 = Pin((__chip_num, 116))
 
 128 GPIO_117 = Pin((__chip_num, 117))
 
 129 GPIO_118 = Pin((__chip_num, 118))
 
 130 GPIO_119 = Pin((__chip_num, 119))
 
 131 GPIO_120 = Pin((__chip_num, 120))
 
 132 GPIO_121 = Pin((__chip_num, 121))
 
 133 GPIO_122 = Pin((__chip_num, 122))
 
 134 GPIO_123 = Pin((__chip_num, 123))
 
 135 GPIO_124 = Pin((__chip_num, 124))
 
 136 GPIO_125 = Pin((__chip_num, 125))
 
 137 GPIO_126 = Pin((__chip_num, 126))
 
 138 GPIO_127 = Pin((__chip_num, 127))
 
 144 i2cPorts = ((4, I2C4_SCL, I2C4_SDA),)
 
 152 # ordered as spiId, sckId, mosiId, misoId
 
 153 spiPorts = ((3, SPI3_SCLK, SPI3_MOSI, SPI3_MISO),)
 
 159 # ordered as uartId, txId, rxId
 
 160 uartPorts = ((0, UART0_TX, UART0_RX),)
 
 162 # SysFS pwm outputs, pwm channel and pin in first tuple
 
 165 board = detector.board.id
 
 166 if board in ("BANANA_PI_F3"):
 
 167     alias = get_pwm_chipid("d401bc00.pwm")
 
 168     if alias is not None:
 
 169         globals()["PWM" + alias] = GPIO_92
 
 170         pwmOuts.append(((int(alias[-1]), 0), GPIO_92))
 
 171     alias = get_pwm_chipid("d4020400.pwm")
 
 172     if alias is not None:
 
 173         globals()["PWM" + alias] = GPIO_74
 
 174         pwmOuts.append(((int(alias[-1]), 0), GPIO_74))