* Update avrintel.[ch]
These are written by a program that takes AVR-relevant sources such as
io*.h header files and atdf files into account. For this update a set of
decade-old .xml files have been added (useful for discontinued chips
that may still want to be programmed).
* Format avrintel table to max 99 chars
This to be able to extract more easily relevant information from the
source. Now can grep //.Mem avrintel.c to extract a table with memory
sizes, similarly grep //.Source or grep //.ID. And lines are now less
than 100 characters wide.
* Expand avrintel table to cover configuration bitfields
- Add CH341A programmer support
- Provide paged access functions so terminal cache works
- Provide avrdude.conf entry for the ch341a programmer
- Select ch341a reset line from reset=<n>; property in avrdude.conf.in
- Update ch341a documentation
---------
Co-authored-by: Alex Manoel Ferreira Silva (Windol) <windol@legytma.com.br>
Co-authored-by: Stefan Rueger <stefan.rueger@urclocks.com>
Tested and reviewed by @MCUdude and @mcuee
Before this commit, linuxgpio-gpiod used `gpiod_line_find()` to find
gpio lines by name, and would construct the gpio name by appending the
requested gpio number to the string "GPIO". This had the advantage
that it didn't have to specify the gpiochip to use, since gpio names are
globally unique in gpiod-land. But it has the severe drawback that only
gpios whose name begins with "GPIO" could be used.
This commit changes that to use `gpiod_line_get()` instead, which takes
a gpiochip name (the avrdude "port") and an "offset" (the pin number on
that chip). This lets it use any available gpio line, no matter what
name libgpiod assigned it.
The "linuxgpio" backend will now try both the old sysfs and new (since
Linux 4.8) libgpiod interface to access gpio pins. If libgpiod works
it will use that, if it does not work it will fall back to the old
sysfs interface.
The libgpiod code is compiled in if libgpiod is available at build time,
and compiled out otherwise.
This commit renames the internal functions and variables of the linuxgpio
pin driver to include "sysfs", to indicate that they're referring to
the older sysfs interface.
The following commits will add libgpiod support to the linuxgpio pin
driver, and autoselect between them.
In `avrdude.conf.in` this PR
- Adds AT89S51 and AT89S52
- Adds AT902323 and ATtiny22 by inheritance from AT902343
- Changes AT90S4433 to inherit from AT90S2333 (same datasheet)
Changes in `avrintel.[ch]` are needed to add the two new `mucid`s
for AT89S51/52; as a "bycatch" a new version of avrintel.c is
deployed with corrections to UART interrupts
`config_gram.y` needed changing to suppress false warnings for the odd
address bit positions for AT89S51/52 SPI read signature commands.