[FL-3232] FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx (#2565)
* FuriHal: fix gpio naming and add explicit pulls for vibro, speaker and ir_tx * Github: workflow event debug print * Github: proper PR head commit SHA extraction in get_env.py
This commit is contained in:
parent
d1ad924216
commit
0d8518d31d
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -37,7 +37,7 @@ jobs:
|
|||||||
else
|
else
|
||||||
TYPE="other"
|
TYPE="other"
|
||||||
fi
|
fi
|
||||||
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE"
|
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}"
|
||||||
echo random_hash=$(openssl rand -base64 40 | shasum -a 256 | awk '{print $1}') >> $GITHUB_OUTPUT
|
echo random_hash=$(openssl rand -base64 40 | shasum -a 256 | awk '{print $1}') >> $GITHUB_OUTPUT
|
||||||
echo "event_type=$TYPE" >> $GITHUB_OUTPUT
|
echo "event_type=$TYPE" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ jobs:
|
|||||||
else
|
else
|
||||||
TYPE="other"
|
TYPE="other"
|
||||||
fi
|
fi
|
||||||
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE"
|
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}"
|
||||||
|
|
||||||
- name: 'Build the firmware'
|
- name: 'Build the firmware'
|
||||||
run: |
|
run: |
|
||||||
|
2
.github/workflows/merge_report.yml
vendored
2
.github/workflows/merge_report.yml
vendored
@ -30,7 +30,7 @@ jobs:
|
|||||||
else
|
else
|
||||||
TYPE="other"
|
TYPE="other"
|
||||||
fi
|
fi
|
||||||
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE"
|
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}"
|
||||||
|
|
||||||
- name: 'Check ticket and report'
|
- name: 'Check ticket and report'
|
||||||
run: |
|
run: |
|
||||||
|
2
.github/workflows/pvs_studio.yml
vendored
2
.github/workflows/pvs_studio.yml
vendored
@ -38,7 +38,7 @@ jobs:
|
|||||||
else
|
else
|
||||||
TYPE="other"
|
TYPE="other"
|
||||||
fi
|
fi
|
||||||
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE"
|
python3 scripts/get_env.py "--event_file=${{ github.event_path }}" "--type=$TYPE" || cat "${{ github.event_path }}"
|
||||||
|
|
||||||
- name: 'Supply PVS credentials'
|
- name: 'Supply PVS credentials'
|
||||||
run: |
|
run: |
|
||||||
|
@ -34,7 +34,7 @@ void AccessorApp::run(void) {
|
|||||||
AccessorApp::AccessorApp()
|
AccessorApp::AccessorApp()
|
||||||
: text_store{0} {
|
: text_store{0} {
|
||||||
notification = static_cast<NotificationApp*>(furi_record_open(RECORD_NOTIFICATION));
|
notification = static_cast<NotificationApp*>(furi_record_open(RECORD_NOTIFICATION));
|
||||||
onewire_host = onewire_host_alloc(&ibutton_gpio);
|
onewire_host = onewire_host_alloc(&gpio_ibutton);
|
||||||
furi_hal_power_enable_otg();
|
furi_hal_power_enable_otg();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,10 +33,10 @@ It is possible to use other GPIO pin as a 1-Wire data pin. In order to change it
|
|||||||
- gpio_ext_pa4
|
- gpio_ext_pa4
|
||||||
- gpio_ext_pa6
|
- gpio_ext_pa6
|
||||||
- gpio_ext_pa7
|
- gpio_ext_pa7
|
||||||
- ibutton_gpio
|
- gpio_ibutton
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define THERMO_GPIO_PIN (ibutton_gpio)
|
#define THERMO_GPIO_PIN (gpio_ibutton)
|
||||||
```
|
```
|
||||||
Do not forget about the external pull-up resistor as these pins do not have one built-in.
|
Do not forget about the external pull-up resistor as these pins do not have one built-in.
|
||||||
|
|
||||||
|
@ -43,10 +43,10 @@
|
|||||||
- gpio_ext_pa4
|
- gpio_ext_pa4
|
||||||
- gpio_ext_pa6
|
- gpio_ext_pa6
|
||||||
- gpio_ext_pa7
|
- gpio_ext_pa7
|
||||||
- ibutton_gpio
|
- gpio_ibutton
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define THERMO_GPIO_PIN (ibutton_gpio)
|
#define THERMO_GPIO_PIN (gpio_ibutton)
|
||||||
|
|
||||||
/* Flags which the reader thread responds to */
|
/* Flags which the reader thread responds to */
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
@ -25,7 +25,7 @@ static void onewire_cli_print_usage() {
|
|||||||
|
|
||||||
static void onewire_cli_search(Cli* cli) {
|
static void onewire_cli_search(Cli* cli) {
|
||||||
UNUSED(cli);
|
UNUSED(cli);
|
||||||
OneWireHost* onewire = onewire_host_alloc(&ibutton_gpio);
|
OneWireHost* onewire = onewire_host_alloc(&gpio_ibutton);
|
||||||
uint8_t address[8];
|
uint8_t address[8];
|
||||||
bool done = false;
|
bool done = false;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,20.1,,
|
Version,+,21.0,,
|
||||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||||
Header,+,applications/services/cli/cli.h,,
|
Header,+,applications/services/cli/cli.h,,
|
||||||
Header,+,applications/services/cli/cli_vcp.h,,
|
Header,+,applications/services/cli/cli_vcp.h,,
|
||||||
@ -2161,7 +2161,7 @@ Variable,+,gpio_usart_rx,const GpioPin,
|
|||||||
Variable,+,gpio_usart_tx,const GpioPin,
|
Variable,+,gpio_usart_tx,const GpioPin,
|
||||||
Variable,+,gpio_usb_dm,const GpioPin,
|
Variable,+,gpio_usb_dm,const GpioPin,
|
||||||
Variable,+,gpio_usb_dp,const GpioPin,
|
Variable,+,gpio_usb_dp,const GpioPin,
|
||||||
Variable,+,ibutton_gpio,const GpioPin,
|
Variable,+,gpio_ibutton,const GpioPin,
|
||||||
Variable,+,input_pins,const InputPin[],
|
Variable,+,input_pins,const InputPin[],
|
||||||
Variable,+,input_pins_count,const size_t,
|
Variable,+,input_pins_count,const size_t,
|
||||||
Variable,+,message_blink_set_color_blue,const NotificationMessage,
|
Variable,+,message_blink_set_color_blue,const NotificationMessage,
|
||||||
@ -2309,7 +2309,7 @@ Variable,+,message_red_255,const NotificationMessage,
|
|||||||
Variable,+,message_sound_off,const NotificationMessage,
|
Variable,+,message_sound_off,const NotificationMessage,
|
||||||
Variable,+,message_vibro_off,const NotificationMessage,
|
Variable,+,message_vibro_off,const NotificationMessage,
|
||||||
Variable,+,message_vibro_on,const NotificationMessage,
|
Variable,+,message_vibro_on,const NotificationMessage,
|
||||||
Variable,+,periph_power,const GpioPin,
|
Variable,+,gpio_periph_power,const GpioPin,
|
||||||
Variable,+,sequence_audiovisual_alert,const NotificationSequence,
|
Variable,+,sequence_audiovisual_alert,const NotificationSequence,
|
||||||
Variable,+,sequence_blink_blue_10,const NotificationSequence,
|
Variable,+,sequence_blink_blue_10,const NotificationSequence,
|
||||||
Variable,+,sequence_blink_blue_100,const NotificationSequence,
|
Variable,+,sequence_blink_blue_100,const NotificationSequence,
|
||||||
@ -2364,4 +2364,4 @@ Variable,+,usb_cdc_single,FuriHalUsbInterface,
|
|||||||
Variable,+,usb_hid,FuriHalUsbInterface,
|
Variable,+,usb_hid,FuriHalUsbInterface,
|
||||||
Variable,+,usb_hid_u2f,FuriHalUsbInterface,
|
Variable,+,usb_hid_u2f,FuriHalUsbInterface,
|
||||||
Variable,+,usbd_devfs,const usbd_driver,
|
Variable,+,usbd_devfs,const usbd_driver,
|
||||||
Variable,+,vibro_gpio,const GpioPin,
|
Variable,+,gpio_vibro,const GpioPin,
|
||||||
|
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
#define TAG "FuriHalResources"
|
#define TAG "FuriHalResources"
|
||||||
|
|
||||||
const GpioPin vibro_gpio = {.port = GPIOA, .pin = LL_GPIO_PIN_8};
|
const GpioPin gpio_vibro = {.port = GPIOA, .pin = LL_GPIO_PIN_8};
|
||||||
const GpioPin ibutton_gpio = {.port = GPIOB, .pin = LL_GPIO_PIN_14};
|
const GpioPin gpio_ibutton = {.port = GPIOB, .pin = LL_GPIO_PIN_14};
|
||||||
|
|
||||||
const GpioPin gpio_display_cs = {.port = GPIOC, .pin = LL_GPIO_PIN_11};
|
const GpioPin gpio_display_cs = {.port = GPIOC, .pin = LL_GPIO_PIN_11};
|
||||||
const GpioPin gpio_display_rst_n = {.port = GPIOB, .pin = LL_GPIO_PIN_0};
|
const GpioPin gpio_display_rst_n = {.port = GPIOB, .pin = LL_GPIO_PIN_0};
|
||||||
@ -57,7 +57,7 @@ const GpioPin gpio_i2c_power_scl = {.port = GPIOA, .pin = LL_GPIO_PIN_9};
|
|||||||
|
|
||||||
const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8};
|
const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8};
|
||||||
|
|
||||||
const GpioPin periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3};
|
const GpioPin gpio_periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3};
|
||||||
|
|
||||||
const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11};
|
const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11};
|
||||||
const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12};
|
const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12};
|
||||||
@ -118,8 +118,8 @@ void furi_hal_resources_init_early() {
|
|||||||
furi_hal_resources_init_input_pins(GpioModeInput);
|
furi_hal_resources_init_input_pins(GpioModeInput);
|
||||||
|
|
||||||
// SD Card stepdown control
|
// SD Card stepdown control
|
||||||
furi_hal_gpio_write(&periph_power, 1);
|
furi_hal_gpio_write(&gpio_periph_power, 1);
|
||||||
furi_hal_gpio_init(&periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
|
||||||
|
|
||||||
// Display pins
|
// Display pins
|
||||||
furi_hal_gpio_write(&gpio_display_rst_n, 1);
|
furi_hal_gpio_write(&gpio_display_rst_n, 1);
|
||||||
@ -165,6 +165,10 @@ void furi_hal_resources_init() {
|
|||||||
// Button pins
|
// Button pins
|
||||||
furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall);
|
furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall);
|
||||||
|
|
||||||
|
// Explicit pulls pins
|
||||||
|
furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullDown, GpioSpeedLow);
|
||||||
|
furi_hal_gpio_init(&gpio_vibro, GpioModeAnalog, GpioPullDown, GpioSpeedLow);
|
||||||
|
|
||||||
// Display pins
|
// Display pins
|
||||||
furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
|
||||||
furi_hal_gpio_write(&gpio_display_rst_n, 0);
|
furi_hal_gpio_write(&gpio_display_rst_n, 0);
|
||||||
@ -176,9 +180,7 @@ void furi_hal_resources_init() {
|
|||||||
furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow);
|
||||||
furi_hal_gpio_write(&gpio_sdcard_cd, 0);
|
furi_hal_gpio_write(&gpio_sdcard_cd, 0);
|
||||||
|
|
||||||
furi_hal_gpio_init(&vibro_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_ibutton, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
||||||
|
|
||||||
furi_hal_gpio_init(&ibutton_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
|
||||||
|
|
||||||
NVIC_SetPriority(EXTI0_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 5, 0));
|
NVIC_SetPriority(EXTI0_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 5, 0));
|
||||||
NVIC_EnableIRQ(EXTI0_IRQn);
|
NVIC_EnableIRQ(EXTI0_IRQn);
|
||||||
@ -222,7 +224,7 @@ int32_t furi_hal_resources_get_ext_pin_number(const GpioPin* gpio) {
|
|||||||
return 15;
|
return 15;
|
||||||
else if(gpio == &gpio_ext_pc0)
|
else if(gpio == &gpio_ext_pc0)
|
||||||
return 16;
|
return 16;
|
||||||
else if(gpio == &ibutton_gpio)
|
else if(gpio == &gpio_ibutton)
|
||||||
return 17;
|
return 17;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -50,8 +50,8 @@ extern const size_t input_pins_count;
|
|||||||
extern const GpioPinRecord gpio_pins[];
|
extern const GpioPinRecord gpio_pins[];
|
||||||
extern const size_t gpio_pins_count;
|
extern const size_t gpio_pins_count;
|
||||||
|
|
||||||
extern const GpioPin vibro_gpio;
|
extern const GpioPin gpio_vibro;
|
||||||
extern const GpioPin ibutton_gpio;
|
extern const GpioPin gpio_ibutton;
|
||||||
|
|
||||||
extern const GpioPin gpio_display_cs;
|
extern const GpioPin gpio_display_cs;
|
||||||
extern const GpioPin gpio_display_rst_n;
|
extern const GpioPin gpio_display_rst_n;
|
||||||
@ -100,7 +100,7 @@ extern const GpioPin gpio_i2c_power_scl;
|
|||||||
|
|
||||||
extern const GpioPin gpio_speaker;
|
extern const GpioPin gpio_speaker;
|
||||||
|
|
||||||
extern const GpioPin periph_power;
|
extern const GpioPin gpio_periph_power;
|
||||||
|
|
||||||
extern const GpioPin gpio_usb_dm;
|
extern const GpioPin gpio_usb_dm;
|
||||||
extern const GpioPin gpio_usb_dp;
|
extern const GpioPin gpio_usb_dp;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
entry,status,name,type,params
|
entry,status,name,type,params
|
||||||
Version,+,20.1,,
|
Version,+,21.0,,
|
||||||
Header,+,applications/services/bt/bt_service/bt.h,,
|
Header,+,applications/services/bt/bt_service/bt.h,,
|
||||||
Header,+,applications/services/cli/cli.h,,
|
Header,+,applications/services/cli/cli.h,,
|
||||||
Header,+,applications/services/cli/cli_vcp.h,,
|
Header,+,applications/services/cli/cli_vcp.h,,
|
||||||
@ -3100,7 +3100,7 @@ Variable,+,gpio_usart_rx,const GpioPin,
|
|||||||
Variable,+,gpio_usart_tx,const GpioPin,
|
Variable,+,gpio_usart_tx,const GpioPin,
|
||||||
Variable,+,gpio_usb_dm,const GpioPin,
|
Variable,+,gpio_usb_dm,const GpioPin,
|
||||||
Variable,+,gpio_usb_dp,const GpioPin,
|
Variable,+,gpio_usb_dp,const GpioPin,
|
||||||
Variable,+,ibutton_gpio,const GpioPin,
|
Variable,+,gpio_ibutton,const GpioPin,
|
||||||
Variable,+,input_pins,const InputPin[],
|
Variable,+,input_pins,const InputPin[],
|
||||||
Variable,+,input_pins_count,const size_t,
|
Variable,+,input_pins_count,const size_t,
|
||||||
Variable,+,lfrfid_protocols,const ProtocolBase*[],
|
Variable,+,lfrfid_protocols,const ProtocolBase*[],
|
||||||
@ -3249,7 +3249,7 @@ Variable,+,message_red_255,const NotificationMessage,
|
|||||||
Variable,+,message_sound_off,const NotificationMessage,
|
Variable,+,message_sound_off,const NotificationMessage,
|
||||||
Variable,+,message_vibro_off,const NotificationMessage,
|
Variable,+,message_vibro_off,const NotificationMessage,
|
||||||
Variable,+,message_vibro_on,const NotificationMessage,
|
Variable,+,message_vibro_on,const NotificationMessage,
|
||||||
Variable,+,periph_power,const GpioPin,
|
Variable,+,gpio_periph_power,const GpioPin,
|
||||||
Variable,+,sequence_audiovisual_alert,const NotificationSequence,
|
Variable,+,sequence_audiovisual_alert,const NotificationSequence,
|
||||||
Variable,+,sequence_blink_blue_10,const NotificationSequence,
|
Variable,+,sequence_blink_blue_10,const NotificationSequence,
|
||||||
Variable,+,sequence_blink_blue_100,const NotificationSequence,
|
Variable,+,sequence_blink_blue_100,const NotificationSequence,
|
||||||
@ -3307,4 +3307,4 @@ Variable,+,usb_cdc_single,FuriHalUsbInterface,
|
|||||||
Variable,+,usb_hid,FuriHalUsbInterface,
|
Variable,+,usb_hid,FuriHalUsbInterface,
|
||||||
Variable,+,usb_hid_u2f,FuriHalUsbInterface,
|
Variable,+,usb_hid_u2f,FuriHalUsbInterface,
|
||||||
Variable,+,usbd_devfs,const usbd_driver,
|
Variable,+,usbd_devfs,const usbd_driver,
|
||||||
Variable,+,vibro_gpio,const GpioPin,
|
Variable,+,gpio_vibro,const GpioPin,
|
||||||
|
|
@ -93,15 +93,15 @@ void furi_hal_ibutton_emulate_stop() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_ibutton_pin_configure() {
|
void furi_hal_ibutton_pin_configure() {
|
||||||
furi_hal_gpio_write(&ibutton_gpio, true);
|
furi_hal_gpio_write(&gpio_ibutton, true);
|
||||||
furi_hal_gpio_init(&ibutton_gpio, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_ibutton, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
|
||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_ibutton_pin_reset() {
|
void furi_hal_ibutton_pin_reset() {
|
||||||
furi_hal_gpio_write(&ibutton_gpio, true);
|
furi_hal_gpio_write(&gpio_ibutton, true);
|
||||||
furi_hal_gpio_init(&ibutton_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_ibutton, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_ibutton_pin_write(const bool state) {
|
void furi_hal_ibutton_pin_write(const bool state) {
|
||||||
furi_hal_gpio_write(&ibutton_gpio, state);
|
furi_hal_gpio_write(&gpio_ibutton, state);
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#if INFRARED_TX_DEBUG == 1
|
#if INFRARED_TX_DEBUG == 1
|
||||||
#define gpio_infrared_tx gpio_infrared_tx_debug
|
#define gpio_infrared_tx gpio_infrared_tx_debug
|
||||||
const GpioPin gpio_infrared_tx_debug = {.port = GPIOA, .pin = GPIO_PIN_7};
|
const GpioPin gpio_infrared_tx_debug = {.port = GPIOA, .pin = GpioModeAnalog};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define INFRARED_TIM_TX_DMA_BUFFER_SIZE 200
|
#define INFRARED_TIM_TX_DMA_BUFFER_SIZE 200
|
||||||
@ -567,7 +567,7 @@ static void furi_hal_infrared_async_tx_free_resources(void) {
|
|||||||
(furi_hal_infrared_state == InfraredStateIdle) ||
|
(furi_hal_infrared_state == InfraredStateIdle) ||
|
||||||
(furi_hal_infrared_state == InfraredStateAsyncTxStopped));
|
(furi_hal_infrared_state == InfraredStateAsyncTxStopped));
|
||||||
|
|
||||||
furi_hal_gpio_init(&gpio_infrared_tx, GpioModeOutputOpenDrain, GpioPullDown, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_infrared_tx, GpioModeAnalog, GpioPullDown, GpioSpeedLow);
|
||||||
furi_hal_interrupt_set_isr(IR_DMA_CH1_IRQ, NULL, NULL);
|
furi_hal_interrupt_set_isr(IR_DMA_CH1_IRQ, NULL, NULL);
|
||||||
furi_hal_interrupt_set_isr(IR_DMA_CH2_IRQ, NULL, NULL);
|
furi_hal_interrupt_set_isr(IR_DMA_CH2_IRQ, NULL, NULL);
|
||||||
LL_TIM_DeInit(TIM1);
|
LL_TIM_DeInit(TIM1);
|
||||||
|
@ -440,11 +440,11 @@ float furi_hal_power_get_usb_voltage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_power_enable_external_3_3v() {
|
void furi_hal_power_enable_external_3_3v() {
|
||||||
furi_hal_gpio_write(&periph_power, 1);
|
furi_hal_gpio_write(&gpio_periph_power, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_power_disable_external_3_3v() {
|
void furi_hal_power_disable_external_3_3v() {
|
||||||
furi_hal_gpio_write(&periph_power, 0);
|
furi_hal_gpio_write(&gpio_periph_power, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_power_suppress_charge_enter() {
|
void furi_hal_power_suppress_charge_enter() {
|
||||||
|
@ -6,8 +6,8 @@
|
|||||||
|
|
||||||
#define TAG "FuriHalResources"
|
#define TAG "FuriHalResources"
|
||||||
|
|
||||||
const GpioPin vibro_gpio = {.port = VIBRO_GPIO_Port, .pin = VIBRO_Pin};
|
const GpioPin gpio_vibro = {.port = VIBRO_GPIO_Port, .pin = VIBRO_Pin};
|
||||||
const GpioPin ibutton_gpio = {.port = iBTN_GPIO_Port, .pin = iBTN_Pin};
|
const GpioPin gpio_ibutton = {.port = iBTN_GPIO_Port, .pin = iBTN_Pin};
|
||||||
|
|
||||||
const GpioPin gpio_cc1101_g0 = {.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin};
|
const GpioPin gpio_cc1101_g0 = {.port = CC1101_G0_GPIO_Port, .pin = CC1101_G0_Pin};
|
||||||
const GpioPin gpio_rf_sw_0 = {.port = RF_SW_0_GPIO_Port, .pin = RF_SW_0_Pin};
|
const GpioPin gpio_rf_sw_0 = {.port = RF_SW_0_GPIO_Port, .pin = RF_SW_0_Pin};
|
||||||
@ -59,7 +59,7 @@ const GpioPin gpio_i2c_power_scl = {.port = GPIOA, .pin = LL_GPIO_PIN_9};
|
|||||||
|
|
||||||
const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8};
|
const GpioPin gpio_speaker = {.port = GPIOB, .pin = LL_GPIO_PIN_8};
|
||||||
|
|
||||||
const GpioPin periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3};
|
const GpioPin gpio_periph_power = {.port = GPIOA, .pin = LL_GPIO_PIN_3};
|
||||||
|
|
||||||
const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11};
|
const GpioPin gpio_usb_dm = {.port = GPIOA, .pin = LL_GPIO_PIN_11};
|
||||||
const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12};
|
const GpioPin gpio_usb_dp = {.port = GPIOA, .pin = LL_GPIO_PIN_12};
|
||||||
@ -106,8 +106,8 @@ void furi_hal_resources_init_early() {
|
|||||||
furi_hal_resources_init_input_pins(GpioModeInput);
|
furi_hal_resources_init_input_pins(GpioModeInput);
|
||||||
|
|
||||||
// SD Card stepdown control
|
// SD Card stepdown control
|
||||||
furi_hal_gpio_write(&periph_power, 1);
|
furi_hal_gpio_write(&gpio_periph_power, 1);
|
||||||
furi_hal_gpio_init(&periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_periph_power, GpioModeOutputOpenDrain, GpioPullNo, GpioSpeedLow);
|
||||||
|
|
||||||
// Display pins
|
// Display pins
|
||||||
furi_hal_gpio_write(&gpio_display_rst_n, 1);
|
furi_hal_gpio_write(&gpio_display_rst_n, 1);
|
||||||
@ -153,6 +153,11 @@ void furi_hal_resources_init() {
|
|||||||
// Button pins
|
// Button pins
|
||||||
furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall);
|
furi_hal_resources_init_input_pins(GpioModeInterruptRiseFall);
|
||||||
|
|
||||||
|
// Explicit pulls pins
|
||||||
|
furi_hal_gpio_init(&gpio_infrared_tx, GpioModeAnalog, GpioPullDown, GpioSpeedLow);
|
||||||
|
furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullDown, GpioSpeedLow);
|
||||||
|
furi_hal_gpio_init(&gpio_vibro, GpioModeAnalog, GpioPullDown, GpioSpeedLow);
|
||||||
|
|
||||||
// Display pins
|
// Display pins
|
||||||
furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_display_rst_n, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
|
||||||
furi_hal_gpio_write(&gpio_display_rst_n, 0);
|
furi_hal_gpio_write(&gpio_display_rst_n, 0);
|
||||||
@ -164,9 +169,7 @@ void furi_hal_resources_init() {
|
|||||||
furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_sdcard_cd, GpioModeInput, GpioPullNo, GpioSpeedLow);
|
||||||
furi_hal_gpio_write(&gpio_sdcard_cd, 0);
|
furi_hal_gpio_write(&gpio_sdcard_cd, 0);
|
||||||
|
|
||||||
furi_hal_gpio_init(&vibro_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_ibutton, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
||||||
|
|
||||||
furi_hal_gpio_init(&ibutton_gpio, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
|
||||||
|
|
||||||
furi_hal_gpio_init(&gpio_nfc_irq_rfid_pull, GpioModeInterruptRise, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_nfc_irq_rfid_pull, GpioModeInterruptRise, GpioPullNo, GpioSpeedLow);
|
||||||
|
|
||||||
@ -213,7 +216,7 @@ int32_t furi_hal_resources_get_ext_pin_number(const GpioPin* gpio) {
|
|||||||
return 15;
|
return 15;
|
||||||
else if(gpio == &gpio_ext_pc0)
|
else if(gpio == &gpio_ext_pc0)
|
||||||
return 16;
|
return 16;
|
||||||
else if(gpio == &ibutton_gpio)
|
else if(gpio == &gpio_ibutton)
|
||||||
return 17;
|
return 17;
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -50,8 +50,8 @@ extern const size_t input_pins_count;
|
|||||||
extern const GpioPinRecord gpio_pins[];
|
extern const GpioPinRecord gpio_pins[];
|
||||||
extern const size_t gpio_pins_count;
|
extern const size_t gpio_pins_count;
|
||||||
|
|
||||||
extern const GpioPin vibro_gpio;
|
extern const GpioPin gpio_vibro;
|
||||||
extern const GpioPin ibutton_gpio;
|
extern const GpioPin gpio_ibutton;
|
||||||
|
|
||||||
extern const GpioPin gpio_cc1101_g0;
|
extern const GpioPin gpio_cc1101_g0;
|
||||||
extern const GpioPin gpio_rf_sw_0;
|
extern const GpioPin gpio_rf_sw_0;
|
||||||
@ -102,7 +102,7 @@ extern const GpioPin gpio_i2c_power_scl;
|
|||||||
|
|
||||||
extern const GpioPin gpio_speaker;
|
extern const GpioPin gpio_speaker;
|
||||||
|
|
||||||
extern const GpioPin periph_power;
|
extern const GpioPin gpio_periph_power;
|
||||||
|
|
||||||
extern const GpioPin gpio_usb_dm;
|
extern const GpioPin gpio_usb_dm;
|
||||||
extern const GpioPin gpio_usb_dp;
|
extern const GpioPin gpio_usb_dp;
|
||||||
|
@ -52,7 +52,7 @@ void furi_hal_speaker_release() {
|
|||||||
furi_check(furi_hal_speaker_is_mine());
|
furi_check(furi_hal_speaker_is_mine());
|
||||||
|
|
||||||
furi_hal_speaker_stop();
|
furi_hal_speaker_stop();
|
||||||
furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_speaker, GpioModeAnalog, GpioPullDown, GpioSpeedLow);
|
||||||
furi_hal_power_insomnia_exit();
|
furi_hal_power_insomnia_exit();
|
||||||
|
|
||||||
furi_check(furi_mutex_release(furi_hal_speaker_mutex) == FuriStatusOk);
|
furi_check(furi_mutex_release(furi_hal_speaker_mutex) == FuriStatusOk);
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
#define TAG "FuriHalVibro"
|
#define TAG "FuriHalVibro"
|
||||||
|
|
||||||
void furi_hal_vibro_init() {
|
void furi_hal_vibro_init() {
|
||||||
furi_hal_gpio_init(&vibro_gpio, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
|
furi_hal_gpio_init(&gpio_vibro, GpioModeOutputPushPull, GpioPullNo, GpioSpeedLow);
|
||||||
furi_hal_gpio_write(&vibro_gpio, false);
|
furi_hal_gpio_write(&gpio_vibro, false);
|
||||||
FURI_LOG_I(TAG, "Init OK");
|
FURI_LOG_I(TAG, "Init OK");
|
||||||
}
|
}
|
||||||
|
|
||||||
void furi_hal_vibro_on(bool value) {
|
void furi_hal_vibro_on(bool value) {
|
||||||
furi_hal_gpio_write(&vibro_gpio, value);
|
furi_hal_gpio_write(&gpio_vibro, value);
|
||||||
}
|
}
|
||||||
|
@ -14,8 +14,8 @@ typedef struct {
|
|||||||
static iButtonProtocolGroupDallas* ibutton_protocol_group_dallas_alloc() {
|
static iButtonProtocolGroupDallas* ibutton_protocol_group_dallas_alloc() {
|
||||||
iButtonProtocolGroupDallas* group = malloc(sizeof(iButtonProtocolGroupDallas));
|
iButtonProtocolGroupDallas* group = malloc(sizeof(iButtonProtocolGroupDallas));
|
||||||
|
|
||||||
group->host = onewire_host_alloc(&ibutton_gpio);
|
group->host = onewire_host_alloc(&gpio_ibutton);
|
||||||
group->bus = onewire_slave_alloc(&ibutton_gpio);
|
group->bus = onewire_slave_alloc(&gpio_ibutton);
|
||||||
|
|
||||||
return group;
|
return group;
|
||||||
}
|
}
|
||||||
|
@ -32,7 +32,7 @@ def parse_args():
|
|||||||
def get_commit_json(event):
|
def get_commit_json(event):
|
||||||
context = ssl._create_unverified_context()
|
context = ssl._create_unverified_context()
|
||||||
commit_url = event["pull_request"]["base"]["repo"]["commits_url"].replace(
|
commit_url = event["pull_request"]["base"]["repo"]["commits_url"].replace(
|
||||||
"{/sha}", f"/{event['after']}"
|
"{/sha}", f"/{event['pull_request']['head']['sha']}"
|
||||||
)
|
)
|
||||||
with urllib.request.urlopen(commit_url, context=context) as commit_file:
|
with urllib.request.urlopen(commit_url, context=context) as commit_file:
|
||||||
commit_json = json.loads(commit_file.read().decode("utf-8"))
|
commit_json = json.loads(commit_file.read().decode("utf-8"))
|
||||||
|
Loading…
Reference in New Issue
Block a user