Commit Graph

307 Commits

Author SHA1 Message Date
Andrey Gusakov f32c8e0d17 MSIOBox: support PWM 2024-05-01 17:14:55 -04:00
Andrey Gusakov 3544a8f25d MSIOBox: fix typo 2024-05-01 17:14:55 -04:00
Andrey Gusakov ec50d034bc gpio: core: support HW PWM on gpiochip outputs 2024-05-01 17:14:55 -04:00
Andrey Gusakov ca8a6638a7 drivers: gpio: add support for MSIOBox 2024-04-29 09:16:34 -04:00
rusefi d40e7d3d04 only: making "spi loopback test failed" less annoying 2024-04-04 23:56:37 -04:00
rusefi c9b3534999 only: making "spi loopback test failed" less annoying 2024-04-04 22:36:49 -04:00
rusefillc a5278476a4 only:cleaner guards 2024-03-15 22:26:36 -06:00
Andrey cd74860f37 only: better guards 2024-03-15 18:50:01 -06:00
Andrey Gusakov 483056746c gpio diagnostic: use PIN_UNKNOWN for pins with no diagsotic 2024-02-05 07:56:10 -05:00
Andrey Gusakov 63f8755820 mc33810: diagnostic for GPGD mode, comments, ops number two 2024-01-04 12:09:12 -05:00
Andrey Gusakov 0a4d330483 mx33810: ups 2024-01-04 12:09:12 -05:00
Andrey Gusakov bf67476c9c mc33810: reset command 2024-01-03 16:40:52 -05:00
Andrey Gusakov 5935811a66 mc33810: GPGD/Ignition, recovery settings to TS 2024-01-03 16:40:52 -05:00
Andrey Gusakov 9abe6085ce mc33810: dwell settings 2024-01-03 16:40:52 -05:00
Andrey Gusakov 87280dcc11 mc33810: check replies 2024-01-03 16:40:52 -05:00
Andrey Gusakov 86f2295151 mc33810: divide chip_init() into chip_init() and chip_init_data()
First one is called for chip reinit. Second one called only once
on start to parse config data.
2024-01-03 16:40:52 -05:00
Andrey Gusakov 7dc1c78bf5 mc33810: tabs please
and other styling
2024-01-03 16:40:52 -05:00
Andrey Gusakov 1cf0380356 gpio: core: fix comments 2024-01-03 07:45:32 -05:00
rusefi 6f6b21472c only:mc33810maxDwellTimer 2023-12-26 19:54:27 -05:00
rusefi 53e1b0531a only:MC33810 periodic check of comms 2023-12-26 18:58:36 -05:00
rusefi 42315a55e6 only:MC33810 extracting check_comm() method 2023-12-26 18:57:15 -05:00
rusefi f402e0519b only:MC33810_FAILED usage 2023-12-26 17:45:20 -05:00
rusefi 80edd13485 only:one step less verbose mc33810 2023-12-25 21:46:26 -05:00
Andrey ab6011aa8b only:explicit error if attempting to write unknown smart pin 2023-12-25 17:40:18 -05:00
rusefillc 3b5438fa0b only:explicit error if attempting to write unknown smart pin 2023-12-25 16:22:11 -05:00
rusefillc ef254f1a3a only:code style and verbose 2023-12-25 16:13:15 -05:00
rusefillc 55ed9eee93 smart chips in QC 2023-12-24 21:34:31 -05:00
rusefillc 9b4f96feee only: mc33810: only bind pins once 2023-12-24 11:51:27 -05:00
rusefi 86ce6a73d7 only:smart chip observability 2023-12-21 01:20:27 -05:00
rusefillc 0052b6a2cd mc33810 mark for reinit if fails 2023-12-20 13:24:04 -05:00
rusefillc 435b38cd7b mc33810: moving init to thread 2023-12-20 13:24:04 -05:00
rusefillc 5d7d97ff7d only:mc33810 renames 2023-12-20 08:55:15 -05:00
rusefillc 91987ba8fb only: code style 2023-12-19 23:47:19 -05:00
rusefillc 7721518418 progress 2023-12-19 14:51:58 -05:00
rusefillc b9a0aea64a typo 2023-12-19 14:51:53 -05:00
rusefillc f11e52a402 only: pulling most useful fields up 2023-12-19 13:50:27 -05:00
rusefi 922defde35 only: smart chips: having pins mark as used helps with troubleshooting 2023-12-18 22:39:51 -05:00
rusefillc f54d7d56bc only:nicer error message 2023-12-18 00:39:05 -05:00
rusefi 70f7f856bb only:typos 2023-12-02 12:44:04 -05:00
Andrey Gusakov b6c76b21c0 gpio: mc33810: properly configure gpios for OUTEN, DIN* and GIN* 2023-11-24 16:30:40 -05:00
rusefi d359c15075 only:same 'chip.drv_state = MC33810_WAIT_INIT;' twice 2023-11-24 15:19:34 -05:00
Andrey 375d10fb46 only: one step back for unit tests 2023-11-24 15:04:51 -05:00
rusefillc f329f29bc5 much more visible failure in case of failed chip init 2023-11-24 14:41:17 -05:00
rusefi 9bf07b500f bench test 33810 module #5745
only:f407-discovery
2023-11-24 11:59:04 -05:00
rusefi 84650679d8 bench test 33810 module #5745
only:f407-discovery
2023-11-23 22:27:08 -05:00
rusefillc aa90ca7f66 bench test 33810 module #5745
only:f407-discovery
2023-11-23 20:51:35 -05:00
rusefi e1a36c3390 bench test 33810 module #5745
only:f407-discovery
2023-11-23 11:57:37 -05:00
rusefi b0361f8884 bench test 33810 module #5745
only:f407-discovery
2023-11-23 11:38:08 -05:00
rusefi b92c57e34d bench test 33810 module #5745
only:f407-discovery
2023-11-23 11:06:49 -05:00
rusefillc ea58a0f2f7 bench test 33810 module #5745 2023-11-23 09:21:56 -05:00
rusefi 27051ade0c only:typo? 2023-11-22 21:19:14 -05:00
rusefillc 6e9f981120 only:todo mc33972 2023-11-21 11:15:56 -05:00
Andrey Gusakov 2cacc1b65c L9779: fix initialization 2023-11-19 16:20:11 -05:00
rusefillc afa1e36f46 only:driver for mc33972 replacement #5733 2023-11-17 12:35:57 -05:00
Andrey cdfee38284 clean-up 2023-11-02 11:26:29 -04:00
rusefillc 35e57475a4 only:variable shadowing should be avoided #5676 2023-11-01 12:12:50 -04:00
rusefillc 91ba507d4b only:variable shadowing should be avoided #5676 2023-11-01 12:07:00 -04:00
rusefillc 7b25477ddf CodeQL says Potentially uninitialized local variable 2023-10-27 23:41:55 -04:00
Andrey G 9a9495f0fb
Pvs analysis (#5509)
* The 'chip->drv_state' variable is assigned values twice successively.

Found with PVS-Studio

* variable is assigned to itself

Found with PVS-Studio

---------

Co-authored-by: Andrey Gusakov <andrey.gusakov@cogentembedded.com>
2023-08-11 11:21:43 -04:00
rusefillc 47d92d3e95 helping gcc 2023-06-15 23:28:27 -04:00
Matthew Kennedy 61e5b4b1ad change ObdCode to enum class builds firmware 2023-04-29 00:44:00 -04:00
rusefi ceeb819fc8 Indicator for injector HW issues #5189 2023-03-19 03:18:38 -04:00
rusefi 5878a5d310 docs 2023-03-19 02:17:30 -04:00
Andrey 264f265420 CAN GPIO #4096
only:hellen-honda-k
2023-03-05 00:52:57 -05:00
Andrey 130a1eed14 CAN GPIO #4096
only:hellen-honda-k
2023-03-04 22:11:45 -05:00
rusefillc 2b45387eb1 CAN GPIO #4096 2023-03-04 20:50:22 -05:00
rusefillc b75f899973 efi::size 2022-10-27 20:35:37 -04:00
Matthew Kennedy 6e3efed09c
more f429 business (#4679)
* 429 boots and LEDs work

* oops missed a comma

* enable on f767 too, since it should be the same board

* why not just completely duplicate it

* script should not be fancy

* script should not be fancy

* correct pins

* h743 while we're at it
2022-10-20 00:59:39 -04:00
Andrey G 69d9716fa6
tle8888 dead code (#4568) 2022-09-12 18:54:29 -04:00
Andrey 6e8d248408 brutal encapsulation 2022-09-07 19:37:11 -04:00
Matthew Kennedy 18351dc43b
tle9104 driver (#4410)
* tle9104

* it works!

* cleanup

* cleanup for pr

* efifeatures

* guards
2022-08-02 19:02:03 -04:00
Matthew Kennedy 165e5bb869
misc fixes (#4411)
* fix warnings

* break to debugger in case of panic

* move the check

* s
2022-08-02 12:19:50 -04:00
Andrey G ce7fc8e69d
MRE: tle8888 ls2 fix and friends (#4409)
* tle8888: ups IGN1

* tle8888: more BIT() macro

* tle8888: fix typos

* tle8888: fix LS2 output on MRE when stepper is enabled

Default settings casue one (or few) not used direct driver inputs
to be mapped to OUT5 (LS2 on MRE)

* smart_gpio: comments for TLE8888 on MicroRusEFI

* smart_gpio: typo

* tle8888: more comments
2022-08-02 00:50:56 +03:00
rusefillc c597d6da62 https://github.com/andreika-git/hellen-one/issues/173 2022-07-31 04:39:02 -04:00
rusefillc b0e87c789d [SECURITY] Cheap password protection against tune modification #4243
ohh cute we have name overlap!
2022-07-30 11:28:56 -04:00
Matthew Kennedy c6f46128d6
prototype overcurrent protected driver (#4029)
* stub passthrough protected driver

* plumbing

* include the thing

* signature

* dead

* tdg pdm build task

* s

* pdm pins

* tdg

* init properly

* remove gaps

* board doesn't fatal on start
2022-05-17 23:49:18 -04:00
Matthew Kennedy e4a0979dc2
Brain pin is enum class (#4108)
* change most usages to Gpio::

* board configs

* engine configs etc

* isBrainPinValid, smart gpio

* generator

* generator

* generator

* connector yamls

* kinetis enums

* cypress txt

* kinetis config

* frankenso

* config generator

* actually do it for the others

* disable skips for pr ci

* fix tle8888

* misc

* weird cast from int

* needs this operator too

* this can be an unsigned subtract

* happy tests

* s

* kinetis isConfigurationChanged weirdness

* missed J/K

* cypress efifeatures

* build script mistake (!)

* mistake in smart gpio

* debounce

* eg33

* kinetis, so needy

* it's pretty green, we can skip these again
2022-04-28 17:32:39 -04:00
Matthew Kennedy bc6a87cadc
allow enum_class in rusefi_hw_enums.h (#4104)
* make things c++ friendly

* install various canaries in coal mines

* using is much clearer than typedef

* fixing builds

* lps25

* trigger includes were a mess

* c -> c++ cleanup

* os util

* why did so many include os_util.h?

* fwd declare

* cypress/kinetis

* s

* eg33 happy

* happy sim

* cypress usb

* pch

* cypress

* doesn't need to include all that

* h7
2022-04-25 20:38:16 -04:00
Andrey G 10cab3390a
L9779: update (#3899)
* L9779: update

* L9779: cleanup macro
2022-02-06 17:47:53 -05:00
rusefi a1ccdb1bd9 unused code? 2022-02-06 17:44:58 -05:00
Andrey G c53fd0eaf9
L9779: update driver (#3898)
* L9779: update driver

* L9779: missed chip_init

* L9779: signature
2022-02-06 11:39:37 -05:00
Andrey G a50f848857
L9779: initial driver (#3897)
* smart_gpio.cpp: glue to L9779

* L9779: fill with some code

* L9779: missed getDiag

* L9779: no l9779 on subaru-eg33 board
2022-02-06 09:47:18 -05:00
Matthew Kennedy 5865f65e1e
remove getDebugChannels (#3850) 2022-01-27 19:21:05 -05:00
rusefillc d0d8e95bd3 L9779WD driver #3768 2022-01-10 19:15:36 -05:00
rusefillc 373d619c16 L9779WD driver #3768 2022-01-10 16:53:38 -05:00
Andrey G 020727d65b
TLE8888: do not allow direct gpio drive for Push Pull outputs (#3748)
Some register settings also needs to be changed. Change of direct
drive input is not enought.
2022-01-07 14:11:21 -05:00
rusefillc 914deedb0f TLE8888 diag says OK on disconnected pins and bench test #3737 2022-01-03 20:33:51 -05:00
rusefillc 47444519d6 typo 2022-01-03 03:09:14 -05:00
rusefillc 53d50b5076 doc 2021-12-03 09:57:15 -05:00
Scott Smith 823d9a07e0
Programmatically replace ENGINE() and CONFIG() with engine-> etc (#3565)
git grep -l -w ENGINE | xargs sed -i -r "s/ENGINE\(([]a-zA-Z_0-9.[]+)\)/engine->\1/g"

git grep -l -w CONFIG | xargs sed -i -r "s/([^a-zA-Z_])CONFIG\(([]a-zA-Z_0-9.[]+)\)/\1engineConfiguration->\2/g"
2021-11-17 03:54:21 -05:00
Andrey G 780e91f38a
Bunch of small fixes related to EG33 board (#3188)
* Typo fix

* flash_main: always allow to write settings to ext NOR while running

* mc33810: do not enable outputs right after undervoltage

Wait for next active signal

* QSPI flash: set correct dummy cycles for fast read command

* board subaru: fix connector pinout. again.

* board subaru: fix SDMMC pin configuration

* board subaru: fix DMA conflict SPI4_RX vs SDMMC2
2021-08-24 07:39:03 +03:00
Matthew Kennedy d24f1462e2
even more pch (#3112)
* s

* more

* s

* f7
2021-08-04 19:30:52 -04:00
Matthew Kennedy 25414ebdad
yet more pch (#3068)
* big pch energy

* put back ramdisk stub

* tests are happy

* h743 nucleo

* kinetis

* I love deleting code!

* make stepper happy

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-08-03 22:05:01 -04:00
Matthew Kennedy 2ce7777865
don't require EXTERN_ENGINE in every file (#2969)
* move enginePins

* no more extern engine

* uses

* more

* extern config too

* put this where it belongs

* include correct header

* merge
2021-07-16 18:13:33 -04:00
Andrey G a1387d3bd2
Fixes (#2807)
* tle6240: fix Matt's trap

* map: report some default value if no map sensor configured

Othervise user will get "unexpected MAP value" warning

Thread 2 hit Breakpoint 1, validateMap (mapKPa=3121.66162) at ./controllers/sensors/map.cpp:126
126		if (cisnan(mapKPa) || mapKPa < CONFIG(mapErrorDetectionTooLow) || mapKPa > CONFIG(mapErrorDetectionTooHigh)) {
(gdb) bt
 0  validateMap (mapKPa=3121.66162) at ./controllers/sensors/map.cpp:126
 1  0x002717dc in getMap () at ./controllers/engine_cycle/map_averaging.cpp:334
 2  0x0028175a in GetMapWrapper::getMap (this=0x2004214c <mapWrapper>) at ./init/sensor/init_map.cpp:12
 3  0x0028177c in operator() (__closure=0x0) at ./init/sensor/init_map.cpp:20
 4  0x002817a8 in _FUN () at ./init/sensor/init_map.cpp:21
 5  0x002811de in FunctionPointerSensor::get (this=0x20042150 <mapSensor>) at ./controllers/sensors/function_pointer_sensor.h:24
 6  0x002651c0 in SensorRegistryEntry::get (this=0x2003ddf0 <s_sensorRegistry+48>) at ./controllers/sensors/sensor.cpp:111
 7  0x002653e2 in Sensor::get (type=SensorType::Map) at ./controllers/sensors/sensor.cpp:208
 8  0x00261f38 in updateTunerStudioState (tsOutputChannels=0x2003d2e8 <tsOutputChannels>) at ./console/status_loop.cpp:637
 9  0x00262e48 in prepareTunerStudioOutputs () at ./console/status_loop.cpp:900
 10 0x00260914 in TunerStudio::cmdOutputChannels (this=0x20021a64 <tsInstance>, tsChannel=0x2003d4dc <usbChannel>, offset=0, count=340) at ./console/binary/tunerstudio_commands.cpp:24
 11 0x00260584 in TunerStudioBase::handleCrcCommand (this=0x20021a64 <tsInstance>, tsChannel=0x2003d4dc <usbChannel>, data=0x2003d4e1 <usbChannel+5> "", incomingPacketSize=5)
    at ./console/binary/tunerstudio.cpp:701
 12 0x0025fb3c in tsProcessOne (tsChannel=0x2003d4dc <usbChannel>) at ./console/binary/tunerstudio.cpp:537
 13 0x0025fbe2 in TunerstudioThread::ThreadTask (this=0x2003d608 <usbConsole>) at ./console/binary/tunerstudio.cpp:554
 14 0x0025f094 in ThreadController<1200>::StaticThreadTaskAdapter (thread=0x2003d608 <usbConsole>) at ./controllers/system/thread_controller.h:37
 15 0x0020035e in _port_thread_start () at ChibiOS/os/common/ports/ARMCMx/compilers/GCC/chcoreasm_v7m.S:201
2021-06-10 19:39:48 -04:00
Matthew Kennedy a54a5e7f90
convert gpiochips to c++ (#2761)
* core

* basic header

* tests are happy

* tle6240

* tle8888

* 33972

* 33810

* tle8888_req_init

* unused warning

* warning

* unsigned

* 8888 debug

* fix

* don't qualify

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
2021-06-10 04:11:01 -04:00
Matthew Kennedy 526f1f97a0
Assorted todos (#2762)
* gpiochip todos

* fuel computer

* this was already done
2021-05-30 19:23:29 -04:00
Andrey G c81b01b47a
mc33810: set ignition outputs to GP mode (#2756)
IGN mode does not want to fire Subaru ignitor
2021-05-29 05:07:04 -04:00
Matthew Kennedy 0ea1f15ca3
compile gpiochips as cpp (#2702)
* rename

* core

* structing

* more

* makefile

* structing

* 6240 compiles

* explicit cast instead of implicit narrowing

* 8888

* no extern C

* fix tests build

* extern "C"

* 33810

* 8860

* 33810

* linker

* unbreak master

* don't need that if compiling as C++

* bump config

* fix test

* tests

* unit tests bad merge

* build

* move subaru logic to cpp file

* cpp goodness

* hpp include

* this is probably the right thing to do

* simulator
2021-05-17 08:42:56 +03:00
Andrey G 4178ac61c6
mc33810 (#2684)
* mc33810: ENABLE outputs

* mc33810: enable Dwell time control
2021-05-11 18:17:06 -04:00