X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=server%2Fbbb_pin_defines.c;h=d558993f83fcce16140483c649ac898678fa5eca;hb=0ac7cff9efafba8b86aeb6d4427c4698f9902921;hp=e89c6dc9c4f63565b6c0c448b4d66e574e2ba4b9;hpb=6fb169f93cfef6479fd9572aa478270568957f4f;p=matches%2FMCTX3420.git diff --git a/server/bbb_pin_defines.c b/server/bbb_pin_defines.c index e89c6dc..d558993 100644 --- a/server/bbb_pin_defines.c +++ b/server/bbb_pin_defines.c @@ -1,45 +1,55 @@ #include "bbb_pin_defines.h" +/* Luts and stuff. Yay magic numbers **/ + /** - * A lookup table from header number to GPIO pin number. - * e.g P8_13 is g_gpio_lut[0*46+13] = g_gpio_lut[13] - * e.g P9_13 is g_gpio_lut[1*46+13] = g_gpio_lut[59] + * A lookup table from the actual pin number to GPIO number. + * e.g P8_13 is g_pin_real_to_gpio[0*46+13] = g_pin_real_to_gpio[13] + * e.g P9_13 is g_pin_real_to_gpio[1*46+13] = g_pin_real_to_gpio[59] * * Where the returned value is 0, there is no GPIO pin * at that location. */ -const unsigned char g_pin_to_gpio[GPIO_LUT_SIZE] = { - 0, 0, 0, 0, 0, 0, 0, 66, 67, 69, 68, 45, 44, 23, - 26, 47, 46, 27, 65, 22, 0, 0, 0, 0, 0, 0, 61, 86, +const unsigned char g_pin_real_to_gpio[BBB_PIN_COUNT+1] = { + 0, 0, 0, 0, 0, 0, 0, 66, 67, 69, 68, 45, 44, 0, + 26, 47, 46, 27, 65, 0, 0, 0, 0, 0, 0, 0, 61, 86, 88, 87, 89, 10, 11, 9, 81, 8, 80, 78, 79, 76, 77, 74, 75, 72, 73, 70, 71, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 30, 60, 31, 50, 48, 51, 5, 4, 0, 0, 3, 2, 49, - 15, 117, 14, 115, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, + 0, 30, 60, 31, 0, 48, 0, 5, 4, 0, 0, 0, 0, 49, + 15, 0, 14, 115, 0, 0, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; /** - * Converts GPIO number to index for g_gpio, or 128 if no map. + * Maps a GPIO number to an index into g_gpio (only for use in bbb_pin.c) + * If there is no index for that GPIO number, 128 is returned. */ -const unsigned char g_gpio_to_index[GPIO_INDEX_SIZE] = { - 128, 128, 0, 1, 2, 3, 128, 128, 4, 5, 6, 7, 128, 128, - 8, 9, 128, 128, 128, 128, 128, 128, 10, 11, 128, 128, 12, 13, - 128, 128, 14, 15, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 16, 17, 18, 19, 20, 21, 22, 23, 128, 128, 128, 128, - 128, 128, 128, 128, 24, 25, 128, 128, 128, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 128, 128, - 128, 128, 43, 44, 45, 46, 128, 128, 128, 128, 128, 128, 128, 128, +const unsigned char g_pin_gpio_to_index[GPIO_MAX_NUMBER+1] = { + 128, 128, 128, 128, 0, 1, 128, 128, 2, 3, 4, 5, 128, 128, + 6, 7, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 8, 9, + 128, 128, 10, 11, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, + 128, 128, 12, 13, 14, 15, 16, 17, 128, 128, 128, 128, 128, 128, + 128, 128, 128, 128, 18, 19, 128, 128, 128, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 128, 128, + 128, 128, 37, 38, 39, 40, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 47, 128, 128, 48, 128, 49, 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128 + 41, 128, 128, 42 +}; + +/** + * Maps an index in g_gpio to the corresponding GPIO number. + */ +const unsigned char g_pin_index_to_gpio[GPIO_NUM_PINS] = { + 4, 5, 8, 9, 10, 11, 14, 15, 26, 27, 30, 31, 44, 45, + 46, 47, 48, 49, 60, 61, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 112, + 115 }; /** - * Converts index number of g_gpio into the gpio number + * Converts PWM index to PWM number + * e.g index 3 becomes 6 for /sys/class/pwm/pwm6 */ -const unsigned char g_index_to_gpio[GPIO_NUM_PINS] = { - 2, 3, 4, 5, 8, 9, 10, 11, 14, 15, 22, 23, 26, 27, - 30, 31, 44, 45, 46, 47, 48, 49, 50, 51, 60, 61, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 86, 87, 88, 89, 112, 115, 117 -}; \ No newline at end of file +const unsigned char g_pin_safe_pwm[PWM_NUM_SAFE_PINS] = { + 0, 2, 4, 6, 7 +}; //blergh \ No newline at end of file