[no changelog]pull/2659/merge
parent
b049abff15
commit
ead61d1e90
Binary file not shown.
@ -1,6 +1,10 @@
|
||||
#ifndef _TREZOR_T_H
|
||||
#define _TREZOR_T_H
|
||||
|
||||
#define USE_SD_CARD 1
|
||||
#define USE_TOUCH 1
|
||||
#define USE_SBU 1
|
||||
|
||||
#include "displays/st7789v.h"
|
||||
|
||||
#endif //_TREZOR_T_H
|
||||
|
@ -0,0 +1,20 @@
|
||||
|
||||
#include "touch.h"
|
||||
|
||||
uint32_t touch_click(void) {
|
||||
uint32_t r = 0;
|
||||
// flush touch events if any
|
||||
while (touch_read()) {
|
||||
}
|
||||
// wait for TOUCH_START
|
||||
while ((touch_read() & TOUCH_START) == 0) {
|
||||
}
|
||||
// wait for TOUCH_END
|
||||
while (((r = touch_read()) & TOUCH_END) == 0) {
|
||||
}
|
||||
// flush touch events if any
|
||||
while (touch_read()) {
|
||||
}
|
||||
// return last touch coordinate
|
||||
return r;
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
#ifndef _TOUCH_H
|
||||
#define _TOUCH_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define TOUCH_START (1U << 24)
|
||||
#define TOUCH_MOVE (1U << 25)
|
||||
#define TOUCH_END (1U << 26)
|
||||
|
||||
void touch_init(void);
|
||||
void touch_power_on(void);
|
||||
void touch_power_off(void);
|
||||
void touch_sensitivity(uint8_t value);
|
||||
uint32_t touch_read(void);
|
||||
uint32_t touch_click(void);
|
||||
uint32_t touch_is_detected(void);
|
||||
|
||||
static inline uint16_t touch_unpack_x(uint32_t evt) {
|
||||
return (evt >> 12) & 0xFFF;
|
||||
}
|
||||
static inline uint16_t touch_unpack_y(uint32_t evt) {
|
||||
return (evt >> 0) & 0xFFF;
|
||||
}
|
||||
static inline uint32_t touch_pack_xy(uint16_t x, uint16_t y) {
|
||||
return ((x & 0xFFF) << 12) | (y & 0xFFF);
|
||||
}
|
||||
|
||||
#endif //_TOUCH_H
|
@ -1 +0,0 @@
|
||||
../trezorhal/touch.h
|
@ -0,0 +1 @@
|
||||
../../trezorhal/touch/touch.h
|
@ -0,0 +1,3 @@
|
||||
def get_hw_model_as_number(hw_model):
|
||||
return int.from_bytes(hw_model.encode(), 'little')
|
||||
|
@ -0,0 +1,22 @@
|
||||
from . import get_hw_model_as_number
|
||||
|
||||
|
||||
def configure(env, features_wanted, defines, sources):
|
||||
features_available = []
|
||||
board = 'trezor_1.h'
|
||||
display = 'vg-2864ksweg01.c'
|
||||
hw_model = get_hw_model_as_number('T1B1')
|
||||
hw_revision = 0
|
||||
|
||||
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"', ]
|
||||
defines += [f'HW_MODEL={hw_model}', ]
|
||||
defines += [f'HW_REVISION={hw_revision}', ]
|
||||
sources += [f'embed/trezorhal/displays/{display}', ]
|
||||
|
||||
if "input" in features_wanted:
|
||||
sources += ['embed/trezorhal/button.c']
|
||||
features_available.append("button")
|
||||
|
||||
env.get('ENV')['TREZOR_BOARD'] = board
|
||||
|
||||
return features_available
|
@ -0,0 +1,30 @@
|
||||
from . import get_hw_model_as_number
|
||||
|
||||
|
||||
def configure(env, features_wanted, defines, sources):
|
||||
features_available = []
|
||||
hw_model = get_hw_model_as_number('T2B1')
|
||||
hw_revision = 3
|
||||
board = 'trezor_r_v3.h'
|
||||
display = "ug-2828tswig01.c"
|
||||
|
||||
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"', ]
|
||||
defines += [f'HW_MODEL={hw_model}', ]
|
||||
defines += [f'HW_REVISION={hw_revision}', ]
|
||||
sources += [f'embed/trezorhal/displays/{display}', ]
|
||||
|
||||
if "input" in features_wanted:
|
||||
sources += ['embed/trezorhal/button.c']
|
||||
features_available.append("button")
|
||||
|
||||
if "rgb_led" in features_wanted:
|
||||
sources += ['embed/trezorhal/rgb_led.c']
|
||||
features_available.append("rgb_led")
|
||||
|
||||
if "sbu" in features_wanted:
|
||||
sources += ['embed/trezorhal/sbu.c', ]
|
||||
features_available.append("sbu")
|
||||
|
||||
env.get('ENV')['TREZOR_BOARD'] = board
|
||||
|
||||
return features_available
|
@ -0,0 +1,26 @@
|
||||
from . import get_hw_model_as_number
|
||||
|
||||
|
||||
def configure(env, features_wanted, defines, sources):
|
||||
features_available = []
|
||||
hw_model = get_hw_model_as_number('T2B1')
|
||||
hw_revision = 4
|
||||
board = 'trezor_r_v4.h'
|
||||
display = 'vg-2864ksweg01.c'
|
||||
|
||||
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"', ]
|
||||
defines += [f'HW_MODEL={hw_model}', ]
|
||||
defines += [f'HW_REVISION={hw_revision}', ]
|
||||
sources += [f'embed/trezorhal/displays/{display}', ]
|
||||
|
||||
if "input" in features_wanted:
|
||||
sources += ['embed/trezorhal/button.c']
|
||||
features_available.append("button")
|
||||
|
||||
if "sbu" in features_wanted:
|
||||
sources += ['embed/trezorhal/sbu.c', ]
|
||||
features_available.append("sbu")
|
||||
|
||||
env.get('ENV')['TREZOR_BOARD'] = board
|
||||
|
||||
return features_available
|
@ -0,0 +1,31 @@
|
||||
from . import get_hw_model_as_number
|
||||
|
||||
|
||||
def configure(env, features_wanted, defines, sources):
|
||||
features_available = []
|
||||
board = 'trezor_t.h'
|
||||
display = 'st7789v.c'
|
||||
hw_model = get_hw_model_as_number('T2T1')
|
||||
hw_revision = 0
|
||||
|
||||
defines += [f'TREZOR_BOARD=\\"boards/{board}\\"', ]
|
||||
defines += [f'HW_MODEL={hw_model}', ]
|
||||
defines += [f'HW_REVISION={hw_revision}', ]
|
||||
sources += [f'embed/trezorhal/displays/{display}', ]
|
||||
|
||||
if "input" in features_wanted:
|
||||
sources += ['embed/trezorhal/touch/touch.c', ]
|
||||
sources += ['embed/trezorhal/touch/ft6x36.c', ]
|
||||
features_available.append("touch")
|
||||
|
||||
if "sdcard" in features_wanted:
|
||||
sources += ['embed/trezorhal/sdcard.c', ]
|
||||
features_available.append("sdcard")
|
||||
|
||||
if "sbu" in features_wanted:
|
||||
sources += ['embed/trezorhal/sbu.c', ]
|
||||
features_available.append("sbu")
|
||||
|
||||
env.get('ENV')['TREZOR_BOARD'] = board
|
||||
|
||||
return features_available
|
Loading…
Reference in new issue